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