javascript – jQuery选择多个:nth-​​child()

这是我的表,使用tr和td.

NAME Address CITY STATE 
ABC   123    A     CA 
AB8   123    B     CA
AFC   456    B     TX 
POI   985    C     KJ

文件准备好后,它将全部隐藏.

现在我想要一条线来显示所有tr:
– >列(4)= CA“和”列(3)= B.

我累了我的代码:

$("table[id=maintablex] tr td:nth-child(4):contains('CA'), table[id=maintablex] tr td:nth-child(3):contains('B')").closest('tr').show();

但是它显示一切都有(4)= CA,而(3)= B …我的代码是“或”,有人可以帮助我吗?

添加了完整的HTML代码:

<table id="table">
    <tr>
        <td>ABC</td>
        <td>123</td>
        <td>A</td>
        <td>CA</td>
    </tr>
    <tr>
        <td>ABC</td>
        <td>1234</td>
        <td>B</td>
        <td>CA</td>
    </tr>
    <tr>
        <td>AUF</td>
        <td>123</td>
        <td>C</td>
        <td>TX</td>
    </tr>
    <tr>
        <td>ABC</td>
        <td>456</td>
        <td>B</td>
        <td>TX</td>
    </tr>
</table>
<script language="Javascript">
$("table[id=table] tr").hide();

// Code show here


</script>

我想要显示的结果只是:

AB8   123    B     CA

最佳答案 为什么不这样做:

$("table[id=maintablex] tr td:nth-child(3):contains('B')", 
    $("table[id=maintablex] tr td:nth-child(4):contains('CA')")
).closest('tr').show();

我不知道这是否更快,但基于@Jasper的回复,为什么不这样做:

//select the table, find all `<td>` elements that contain `CA` and iterate through each of them
$('#table')
    .find('td:nth-child(4):contains("CA")')
    .closest('tr')
    .find('td:nth-child(3):contains("B")')
    .closest('tr')
    .addClass('active');

这是jsfiddle:http://jsfiddle.net/KQMXe/

点赞