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

时间:2011-05-26 08:26:10

标签: jquery dom

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

所以我需要等效的以下'伪jQuery':

var tableRow = $(table td[text = 'foo']).parent('tr');

任何人都可以提供正确的语法吗?

5 个答案:

答案 0 :(得分:88)

您可以使用filter()执行此操作:

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

答案 1 :(得分:38)

我知道这是一篇旧帖子,但我想我可以分享另一种[不那么强大但更简单]的方法来搜索表格中的字符串。

$("tr:contains(needle)"); //其中needle是您要搜索的文本。

例如,如果您要搜索文本'框,那就是:

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

这将返回包含此文本的所有元素。如果它返回多个元素,可以使用其他标准来缩小范围

答案 2 :(得分:14)

$(function(){
    var search = 'foo';
    $("table tr td").filter(function() {
        return $(this).text() == search;
    }).parent('tr').css('color','red');
});

对于具有文本为'foo'的单元格的行,将文本变为红色。

答案 3 :(得分:2)

这将搜索每个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();
 });

答案 4 :(得分:0)

getImageData()

Demo 您可以使用RegExp匹配文本

通过search()方法执行