jquery在儿童中找到顶级表

时间:2015-01-27 23:52:16

标签: javascript jquery html

我试图找到不是表元素后代的所有表元素。例如,我想在**

之间选择所有这些
<div>
    <**table**>
        <tr>...</tr>
        <tr>...</tr>
        <tr>
            <table>
                ....
            </table>
        </tr>
    </**table**>
    <div>
        <**table**>
            ...
        </**table**>
    </div>
</div>

基本上我想找到所有顶级表而不是它们的后代表。 DOM的结构不能保证,所以我不能只使用$(“div&gt; table”)

3 个答案:

答案 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