微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

| 我需要获取一个包含包含特定文本的
td
元素的
tr
元素。
td
将包含该文本,并且仅包含该文本(因此我需要
text = \'foo\'
而不是
text contains \'foo\'
逻辑)。 所以我需要以下\'pseudo jQuery \'的等效项:
var tableRow = $(table td[text = \'foo\']).parent(\'tr\');
谁能提供正确的语法?     

解决方法

您可以使用filter()来做到这一点:
var tableRow = $(\"td\").filter(function() {
    return $(this).text() == \"foo\";
}).closest(\"tr\");
    ,我知道这是一篇过时的文章,但是我想我可以分享一种替代的方法(不是更健壮,但更简单),用于在表中搜索字符串。
$(\"tr:contains(needle)\");
//其中needle是您要搜索的文本。 例如,如果您要搜索文本\'box \',则将为:
$(\"tr:contains(\'box\')\");
这将返回带有此文本的所有元素。如果返回多个元素,则可以使用其他条件来缩小范围     ,
$(function(){
    var search = \'foo\';
    $(\"table tr td\").filter(function() {
        return $(this).text() == search;
    }).parent(\'tr\').css(\'color\',\'red\');
});
对于具有文本为\'foo \'的单元格的行,会将文本变为红色。     ,这将在每个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();
 });
    ,
   <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();
            }
        });
    });
演示版 您可以通过使用RegExp匹配文本的search()方法执行     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。