2

我对 JQuery 比较陌生。我在下面的小提琴中借用了代码(抱歉没有引用作者,但我忘记了代码的来源)并稍微修改以实现我的总体目标。

我基本上有两张表,一张有 id 和 class,一张没有。我不能轻易地给非 id/class 表一个 id/class,因为我在另一个应用程序中使用 JQuery 并且没有那么多控制。

我想要的是搜索功能仅搜索和过滤非 id/class 表(下面/小提琴中的第一个表)。所以在这个小提琴的情况下,我希望搜索功能搜索/过滤不是 id="myTable" class="test1" 的表(第一个表)。现在它过滤了两者。

我不知道这段代码是否是最好的,所以我愿意接受建议。谢谢!

<label for="kwd_search">Search:</label> <input type="text" id="kwd_search" value=""/>
<table border="1" style="border-collapse:collapse">
    <thead>
        <tr>
            <th>Name</th>
            <th>Sports</th>
            <th>Country</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Sachin Tendulkar</td>
            <td>Cricket</td>
            <td>India</td>
        </tr>
        <tr>
            <td>Tiger Woods</td>
            <td>Golf</td>
            <td>USA</td>
        </tr>
        <tr>
            <td>Maria Sharapova</td>
            <td>Tennis</td>
            <td>Russia</td>
        </tr>
    </tbody>
</table>
<br>
 <table id="myTable" class="test1" border="1" style="border-collapse:collapse">
    <thead>
        <tr>
            <th>Name2</th>
            <th>Sports2</th>
            <th>Country2</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Sachin Tendulkar2</td>
            <td>Cricket2</td>
            <td>India2</td>
        </tr>
        <tr>
            <td>Tiger Woods2</td>
            <td>Golf2</td>
            <td>USA2</td>
        </tr>
        <tr>
            <td>Maria Sharapova2</td>
            <td>Tennis2</td>
            <td>Russia2</td>
        </tr>
    </tbody>
</table>

小提琴:http: //jsfiddle.net/aPLLF/66/

4

3 回答 3

3

您可以使用not()ID 排除表...

$("table").not($("#myTable"));

这将返回除具有指定 ID 的表之外的所有表。

但是,查看您的示例代码,这就是您需要更新以使其工作的所有内容......

$("table:not(#myTable) tbody>tr").hide();
于 2013-09-05T16:11:23.627 回答
1

一个快速的解决方案是更改:

$("tbody>tr").hide();

$("table:not(':first') tbody>tr").hide();

jsFiddle 示例

于 2013-09-05T16:11:06.857 回答
0

具有 id 的目标表

$("table[id] tbody>tr").hide();

或任何课程

$("table[id] tbody>tr").hide();

没有身份证

$("table:not([id]) tbody>tr").hide();

没有任何课程

$("table:not([class]) tbody>tr").hide();
于 2013-09-05T16:15:03.953 回答