jQuery:仅选择树中类的首次出现

时间:2019-05-08 12:14:25

标签: jquery

我的结构如下:

<div class="root-configuration" data-fullkey="abc.def.123">
    <label></label>
    <div id="sublevel1">
        <div id="sublevel2 (or 3 or 4...)">
            <div class="one-configuration-key"> <!-- YES -->
                ...
                <div class="one-configuration-key"></div> <!-- NO -->
                ...
            </div>
        </div>
    </div>
    <div class="one-configuration-key"> <!-- YES -->
        <somehtmlelements....>
            <div class="one-configuration-key"></div> <!-- NO -->
        </somehtmlelements....>
    </div>
</div>

我需要在“ root-configuration”下选择所有具有“ one-configuration-key”类的元素。事实是,“ root-configuration”和“ one-configuration-key”之间可以有HTML元素,因此.children(".one-configuration-key")在这里不起作用。

但是当我使用$(".root-configuration").find(".one-configuration-key")时,我会得到所有元素,因为树中有子子子元素。但是我只想选择树中的第一次出现。

我将DIV元素标记为“是”,我想选择该元素。 不应选择“否” DIV元素。

有人有主意吗?

2 个答案:

答案 0 :(得分:1)

您想要得到的是所有.one-configuration-key都不是另一个.one-configuration-key的子代。因此您可以选择所有.one-configuration-key,然后通过不成为另一个.one-configuration-key的子代来对其进行过滤:

$('.root-configuration .one-configuration-key').not('.one-configuration-key .one-configuration-key')

答案 1 :(得分:0)

尝试一下:

$(".root-configuration").find(".one-configuration-key").first()

$(".root-configuration").children(".one-configuration-key")[0];

他们必须工作。