【发布时间】:2010-12-16 06:06:24
【问题描述】:
我正在尝试使用 JQuery 来选择具有相同类的一组元素中的下一个元素。
这是 HTML 设置:
<div class="sameClass selected">
<p>Text in here</p>
</div>
<div class="differentClass">
<p>Text in here
</div>
<div class="sameClass">
<p>Text in here</p>
</div>
当我有第一个具有“sameClass”类的 div 时,我想从顶部 div 中删除“选定”类并将其应用到具有“sameClass”类的下一个 div,因此结果如下:
<div class="sameClass">
<p>Text in here</p>
</div>
<div class="differentClass">
<p>Text in here
</div>
<div class="sameClass selected">
<p>Text in here</p>
</div>
我希望你明白我的意思:)
更新:
我发现这个效果最好。
$(".sameClass.selected").nextAll(".sameClass:first").andSelf().toggleClass("selected")
我遇到过一个错误,如果 HTML 是这样的:
<p>
<div class="sameClass">
<p>Text in here</p>
</div>
<div class="differentClass">
<p>Text in here
</div>
<div class="sameClass selected">
<p>Text in here</p>
</div>
</p>
<p>
<div class="sameClass">
<p>Text in here</p>
</div>
</p>
它不会选择第二个 P 块中的“sameClass”。知道为什么会这样吗?
伊夫
【问题讨论】:
-
您选择的解决方案(我的代码)不起作用,因为在您的原始示例中,您没有提到 div 将跨越多个
标签,它们必须位于相同的水平才能工作。并且请将您的 cmets 放在您选择的特定解决方案的帖子下。
-
啊,好吧 - 如果 div 跨越多个元素,您是否有任何关于如何使其工作的指示?