Javascript Jquery根据不同列的多个值隐藏表行

Javascript Jquery根据不同列的多个值隐藏表行,javascript,jquery,Javascript,Jquery,我想在检查多列中接受的值后隐藏表行 该表将是: <table id="my-table> <tr><td class="name">John</td><td class="lastname">Doe</td></tr> <tr><td class="name">Ann</td><td class="lastname">Doe</td></tr>

我想在检查多列中接受的值后隐藏表行

该表将是:

<table id="my-table>
<tr><td class="name">John</td><td class="lastname">Doe</td></tr>
<tr><td class="name">Ann</td><td class="lastname">Doe</td></tr>
<tr><td class="name">John</td><td class="lastname">Smith</td></tr>
</table>
但Jquery不喜欢这样,它说uncaughterror:Syntax Error,unrecognized expression:unsupported pseudo:td

正确的方法是什么

出于同样的原因,我想了解如何进行更复杂的查询,例如: 隐藏包含“a”或“b”的“first name”和包含“x”或“y”的“last name”的所有行。

因为:td不是有效的伪选择器。您可以使用选择器my table td.name:not:contains'John',my table td.lastname:not:contains'Doe'。因为你可以使用,。 $my table td.name:not:包含'John',my table td.lastname:not:包含'Doe'。parent.hide; 约翰 雌鹿 安 雌鹿 约翰 史密斯 因为:td不是有效的伪选择器。您可以使用选择器my table td.name:not:contains'John',my table td.lastname:not:contains'Doe'。因为你可以使用,。 $my table td.name:not:包含'John',my table td.lastname:not:包含'Doe'。parent.hide; 约翰 雌鹿 安 雌鹿 约翰 史密斯 迭代每个tr,然后检查每个第一个和最后一个td

更新:隐藏除John Doe以外的所有内容

$( "tr" ).each( function( index, val ){
    if($(this).find("td:first-child").text() != 'John'  || $(this).find("td:last-child").text() != 'Doe') {
        $(this).hide();
    }
});
迭代每个tr,然后检查每个第一个和最后一个td

更新:隐藏除John Doe以外的所有内容

$( "tr" ).each( function( index, val ){
    if($(this).find("td:first-child").text() != 'John'  || $(this).find("td:last-child").text() != 'Doe') {
        $(this).hide();
    }
});

在这一节中把冒号改为空格怎么样:td.lastname?是的,我也试过了。在这种情况下,我没有收到错误消息,但也看不到对表的任何影响。所以这是一个不确定的测试。在这一节中把冒号改为空格怎么样:td.lastname?是的,我也试过了。在这种情况下,我没有收到错误消息,但也看不到对表的任何影响。因此,这是一个非决定性的测试。从您链接到的引用中,我了解逗号分隔符的含义是否为AND,但在您的示例中,它的作用是AND。我不知道该怎么问“和”或“或”。请您澄清一下好吗?从您链接到的参考资料中,我了解逗号分隔符的意思是与否,但在您的示例中,它的作用是与。我不知道该怎么问“和”或“或”。你能澄清一下吗?迭代是我最初认为应该做的,但没有遇到.each函数。我喜欢这样:您知道Jquery实际使用的好参考吗?c3it.PS:我如何中断或继续这个Jquery迭代?例如,我想跳过第0行标题行。@Benjamin关于跳过标题行,如何将您的标题放在标题行中,而将其他标题放在正文中,例如。然后在选择器$tbody tr上,只选择tr insidetbody@Benjamin关于.text,这实际上取决于td标签中的内容。如果只是名称,那么是,这意味着不需要额外编写代码来获取内容属性的值,但是,请确保在使用文本时进行修剪。@Benjamin关于第一个问题,不抱歉,除了询问/阅读Stackoverflow上的帖子和谷歌搜索之外,我没有一个特定的网站可供参考。迭代是我最初认为应该做的,但没有遇到.each函数。我喜欢这样:您知道Jquery实际使用的好参考吗?c3it.PS:我如何中断或继续这个Jquery迭代?例如,我想跳过第0行标题行。@Benjamin关于跳过标题行,如何将您的标题放在标题行中,而将其他标题放在正文中,例如。然后在选择器$tbody tr上,只选择tr insidetbody@Benjamin关于.text,这实际上取决于td标签中的内容。如果只是名称,那么是的,这意味着不需要额外编写代码来获取内容属性的值,但是,请确保在使用文本时进行修剪。@Benjamin关于你的第一个问题,不,对不起,除了询问/阅读Stackoverflow上的帖子以及通过谷歌搜索,我没有特定的网站可供参考。
$( "tr" ).each( function( index, val ){
    if($(this).find("td:first-child").text() != 'John'  || $(this).find("td:last-child").text() != 'Doe') {
        $(this).hide();
    }
});