【问题标题】:jQuery, select TR's in table where column 2 data is constant?jQuery,在第 2 列数据不变的表中选择 TR?
【发布时间】:2009-09-27 19:05:18
【问题描述】:

我有一个 HTML 表格。我需要一个 jQuery 选择器来仅选择 TR,其中 column2 (TD) 文本等于 =“foo”。这可能吗?

 <table>
        <tr><td>asdasd</td><td>foo</td><td>fsdf</td></tr>
        <tr><td>asdasd</td><td>xxx</td><td>fsdf</td></tr>
        <tr><td>asdasd</td><td>xxx</td><td>fsdf</td></tr>
        <tr><td>asdasd</td><td>foo</td><td>fsdf</td></tr>
        <tr><td>asdasd</td><td>foo</td><td>fsdf</td></tr>
    </table>

所以选择器应该返回第 1、4 和 5 行。谁能指出我正确的方向?

非常感谢, ~ck 在圣地亚哥

【问题讨论】:

  • 我使用了所提供答案的变体,得到了我正在寻找的结果。 var selector = $("table tr").filter(function(index) { return $(this).text().indexOf("foo")!=-1; });

标签: jquery html css-selectors


【解决方案1】:
$('tr').filter(function(index){
    return this.cells[1].innerHTML === 'foo';
});

【讨论】:

    【解决方案2】:

    我的 jQuery 可能有点生疏了,但是这样的东西对你有用吗?

    $('table tr td:eq(1)').filter(function(index) {
        return $(this).text() === 'foo';
    });
    

    【讨论】:

    • 这会非常慢。
    【解决方案3】:

    所以可能会缩短一点工作时间:

    $("table tr").each(function(){
        if( $(this).text().indexOf("foo")!=-1 ) {
            var el = $('td:eq(1)', $(this));
            if (el.text() == 'foo')
                el.attr("bgcolor", "#336699"); //test
        }
    });
    

    【讨论】:

      【解决方案4】:

      如果 'foo' 不必在第 2 列,而只需要在行中,您也可以使用此选择器(我只是为了完整性而添加它)。

      $('tr:contains("foo")').filter(function(index){ return $(this) });
      

      【讨论】:

        猜你喜欢
        • 2015-01-03
        • 1970-01-01
        • 2017-03-02
        • 2022-01-05
        • 1970-01-01
        • 1970-01-01
        • 2012-05-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多