jQuery - 如何找到没有类的下一个兄弟?
我有一个具有动态设置的扩展类的列表。我无法找到与只有可见元素相关的下一个列表项。 .siblings(':visible')
和.next(':visible')
在选择器为jQuery('.expanded')
时似乎不起作用,可能是因为它正在寻找下一个扩展类。jQuery - 如何找到没有类的下一个兄弟?
<ul id="list_1" class="list">
<li class="gridImage" data-id="Christmas"></li> //not visible
<li class="gridImage" data-id="Christmas"></li> //not visible
<li class="gridImage expanded" data-id="Easter"></li>
<li class="gridImage" data-id="Valentines"></li> //not visible
<li class="gridImage" data-id="Easter"></li>
<li class="gridImage" data-id="Miscellaneous"></li> //not visible
</ul>
这里是另一种方式: http://jsfiddle.net/slicedtoad/kqpbh3fv/
$('.expanded').nextAll(":visible").first()
nextAll
就像是下一个,但它抓住所有的选择器匹配以下的兄弟姐妹。首先只需要第一个。
你真棒,谢谢! – 2014-09-19 14:47:07
很好的答案,我很努力,但你之前回答;) – Hitesh 2014-09-19 14:52:27
你可以尝试像
.nextUntil(':visible').last().next()
就是找到所有的兄弟姐妹,直到下一个可见的一个,再从该组中的最后一个(所以它的下一个兄弟应该是可见的)然后是它的下一个兄弟姐妹。
这适用于我上面显示的代码,但在展开的类和可见/隐形物品开始发生变化。 – 2014-09-19 14:44:40
什么使“li”可见? – slicedtoad 2014-09-19 14:29:59
@slicedtoad使用'show()'和'hide()'使另一个列表变得可见/不可见。 – 2014-09-19 14:32:23