2014-09-19 37 views
0

我有一個具有動態設置的擴展類的列表。我無法找到與只有可見元素相關的下一個列表項。 .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> 
+0

什麼使「li」可見? – slicedtoad 2014-09-19 14:29:59

+0

@slicedtoad使用'show()'和'hide()'使另一個列表變得可見/不可見。 – 2014-09-19 14:32:23

回答

1

這裏是另一種方式: http://jsfiddle.net/slicedtoad/kqpbh3fv/

$('.expanded').nextAll(":visible").first() 

nextAll就像是下一個,但它抓住所有的選擇器匹配以下的兄弟姐妹。首先只需要第一個。

+1

你真棒,謝謝! – 2014-09-19 14:47:07

+0

很好的答案,我很努力,但你之前回答;) – Hitesh 2014-09-19 14:52:27

1

你可以嘗試像

.nextUntil(':visible').last().next() 

就是找到所有的兄弟姐妹,直到下一個可見的一個,再從該組中的最後一個(所以它的下一個兄弟應該是可見的)然後是它的下一個兄弟姐妹。

+0

這適用於我上面顯示的代碼,但在展開的類和可見/隱形物品開始發生變化。 – 2014-09-19 14:44:40

相關問題