Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-查找包含包含特定文本的表格单元格的表格行_Jquery_Dom - Fatal编程技术网

jQuery-查找包含包含特定文本的表格单元格的表格行

jQuery-查找包含包含特定文本的表格单元格的表格行,jquery,dom,Jquery,Dom,我需要获取一个tr元素,该元素包含一个td元素,该元素包含特定文本。td将包含该文本,并且仅包含该文本(因此我需要text='foo'而不是文本包含'foo'逻辑) 因此,我需要以下“伪jQuery”的等价物: var tableRow = $(table td[text = 'foo']).parent('tr'); 有人能提供正确的语法吗?您可以使用: var tableRow = $("td").filter(function() { return $(this).text()

我需要获取一个
tr
元素,该元素包含一个
td
元素,该元素包含特定文本。
td
将包含该文本,并且仅包含该文本(因此我需要
text='foo'
而不是
文本包含'foo'
逻辑)

因此,我需要以下“伪jQuery”的等价物:

var tableRow = $(table td[text = 'foo']).parent('tr');
有人能提供正确的语法吗?

您可以使用:

var tableRow = $("td").filter(function() {
    return $(this).text() == "foo";
}).closest("tr");

对于包含文本为“foo”的单元格的行,将文本变为红色。

我知道这是一篇旧文章,但我想我可以分享另一种[不那么健壮,但更简单]的方法来搜索表中的字符串

$(“tr:contains(针)”)//其中needle是您正在搜索的文本

例如,如果您正在搜索文本“框”,则可能是:

$("tr:contains('box')");

这将返回包含此文本的所有元素。如果返回多个元素,则可以使用其他条件缩小范围,这将搜索每个tr内所有td中的文本,并根据搜索文本显示/隐藏tr

 $.each($(".table tbody").find("tr"), function () {                              

                if ($(this).text().toLowerCase().replace(/\s+/g, '').indexOf(searchText.replace(/\s+/g, '').toLowerCase()) == -1)
                    $(this).hide();
                else
                    $(this).show();
 });

PHP
MySql
AJAX
jQuery
JavaScript
HTML
CSS
CSS3
$(“#文本框”)。在('keyup',function()上{
var f=$(this.val();
$(“#table_data tr.listR”)。每个(函数(){
if($(this.text().search)(新的RegExp(f,“i”))<0){
$(this.fadeOut();
}否则{
$(this.show();
}
});
});

您可以使用use RegExp matching text执行by search()方法,也可以在下面签出@pi answer以获取更新的approach@TFD,这种方法有点不同,因为
contains()
匹配子字符串--例如,它将匹配文本为
foobar
的元素,不仅
foo
。此解决方案还将包含包含该内容的任何tr。所以如果你有一张桌子在一张桌子在。。(等)然后它将选择顶部tr并隐藏其下的所有内容,但OP需要最接近的tr。
 $.each($(".table tbody").find("tr"), function () {                              

                if ($(this).text().toLowerCase().replace(/\s+/g, '').indexOf(searchText.replace(/\s+/g, '').toLowerCase()) == -1)
                    $(this).hide();
                else
                    $(this).show();
 });
   <input type="text" id="text" name="search">
<table id="table_data">
        <tr class="listR"><td>PHP</td></tr>
        <tr class="listR"><td>MySql</td></tr>
        <tr class="listR"><td>AJAX</td></tr>
        <tr class="listR"><td>jQuery</td></tr>
        <tr class="listR"><td>JavaScript</td></tr>
        <tr class="listR"><td>HTML</td></tr>
        <tr class="listR"><td>CSS</td></tr>
        <tr class="listR"><td>CSS3</td></tr>
</table>

$("#textbox").on('keyup',function(){
        var f = $(this).val();
      $("#table_data tr.listR").each(function(){
            if ($(this).text().search(new RegExp(f, "i")) < 0) {
                $(this).fadeOut();
             } else {
                 $(this).show();
            }
        });
    });