我试图找到不是表元素后代的所有表元素。例如,我想在**
之间选择所有这些<div>
<**table**>
<tr>...</tr>
<tr>...</tr>
<tr>
<table>
....
</table>
</tr>
</**table**>
<div>
<**table**>
...
</**table**>
</div>
</div>
基本上我想找到所有顶级表而不是它们的后代表。 DOM的结构不能保证,所以我不能只使用$(“div&gt; table”)
答案 0 :(得分:3)
您可以选择所有不具有子表格元素的表格
$("table:not(:has(table))")
答案 1 :(得分:2)
一个简单的解决方案是选择所有表并筛选出具有表祖先的表:
var $tables = $("table")
.filter(function() { return $(this).parents("table").length == 0; });
答案 2 :(得分:1)
好吧考虑一下:
$("table").addClass("test"); // add new class to all the tables <br/><br/>
$("tr").children().removeClass("test"); // remove this class for all the children of tr<br/><br/>
$("td").children().removeClass("test"); // remove this class for all the children of td<br/><br/>
$(".test") //now select the upper most table with its class