gpt4 book ai didi

javascript - 用于排除嵌套后代的 jquery 选择器是什么?

转载 作者:行者123 更新时间:2023-11-28 10:24:55 25 4
gpt4 key购买 nike

Per my SO question here ,它已经转向 jquery 来解决这个问题,但是如果我理清思路,它可能会回到 YUI 中,我需要一个选择器来排除后代。

提出的解决方案是这样的:

$( '.revealer:not(.revealer > .revealer)' );

为了更准确地适应我的情况,因为我有多个 HTML block 要执行相同的测试,我已将其更新为:

$( '#_revealerEl_0 .handle:not(#_revealerEl_0 .reveal .handle)' );

其选择的 HTML(图像上,页面上有许多相同 block 的副本,每个副本都需要单独处理 - id 属性被分配给每个“revealer”):

<div class="revealer" id="#_revealerEl_0">
<div class="hotspot">
<a class="handle" href="javascript:;">A</a>
<div class="reveal">
<p>Content A.</p>
</div>
<div class="reveal">

<p>Content B.</p>

<!-- nested revealer -->
<div class="revealer">
<div class="hotspot">
<a class="handle" href="javascript:;">A</a>
<div class="reveal">
<p>Sub-content A.</p>
</div>
<div class="reveal">
<p>Sub-content B.</p>
</div>
</div>
</div>

</div>
</div>
</div>

简而言之:我需要针对每个揭示者的“热点”内的“顶级”句柄 - 并且没有具有相同类名的嵌套后代。

谢谢,d

编辑:

同样重要的是,我不要开始依赖诸如parentNode、childNode[x]、nextSibling 等后代属性……因为目前这个模块非常灵活,因为它的“reveal”和“handle”元素可以驻留在其他标记中并且仍然会成为目标 - 只要它们被发现在“热点”内。

最佳答案

我不知道哪个是您的 #_revealerEl_0 元素,但如果它是您的顶级 .revealer,您就不能这样做吗?

$('#_revealerEl_0 > .hotspot > .handle')

或者,如果顶级 .revealer 本身就是 #_revealerEl_0 的后代,那么这有效:

$('#_revealerEl_0 > .revealer > .hotspot > .handle')

这里的基本前提是链接多个>子组合器。

关于javascript - 用于排除嵌套后代的 jquery 选择器是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4665430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com