如何选择页面上的所有表,除非它们包含具有特定类的行

Posted

技术标签:

【中文标题】如何选择页面上的所有表,除非它们包含具有特定类的行【英文标题】:How to select all tables on the page unless they contain a row with a specific class 【发布时间】:2020-04-07 04:22:37 【问题描述】:

我无法找到要选择的正确选择器组合:

页面上的任何表格 包含 thead 和 tbody 没有“无结果”类的行

带类的示例表

    <table cellspacing="0">
        <thead>
            <tr>
             <th class="highlight">Name</th>
            <th>Created</th>
            <th>Manage</th>
            <th></th>
            </tr>
        </thead>
        <tbody>
            <tr class="no-results">
                    <td class="solo" colspan="4">
                        No <b>mail templates</b> found! <a>Create New Template</a>
                    </td>
           </tr>
        </tbody>
    </table>

我试过了:

$("table:has(thead ~ tbody tr:not([class='no-results'])");

【问题讨论】:

我终于想出了一个赢家!! ``` var tables = $("table:has(thead ~ tbody>tr:not('.no-results'))"); // 非空表 ``` 【参考方案1】:

我终于想出了一个赢家!!

var tables = $("table:has(thead ~ tbody>tr:not('.no-results'))"); // non-empty tables

【讨论】:

【参考方案2】:

试试 :not(X) 选择器。

参考 - https://drafts.csswg.org/selectors-3/#negation 。

【讨论】:

【参考方案3】:

试试这个查询,它将选择一个不包含.no-results 类的表。我希望这行得通。

 $("table:not(.no-results)")

【讨论】:

我只想要没有 .no-results 的表格

以上是关于如何选择页面上的所有表,除非它们包含具有特定类的行的主要内容,如果未能解决你的问题,请参考以下文章

SQL VBA:选择具有特定表名和字段名的所有表

如何在熊猫中选择具有特定字符串模式的行?

如何根据在选取器视图中选择的行组件更新表视图数据

jQuery数据表过滤具有特定类的行

选择联结表中具有多个值的行

根据在选取器视图中选择的行组件更新表视图数据