简短问题:$this.nextAll().filter(':visible').eq(0)
或.next
jQuery函数中是否有.nextUntil
?
场景我有3个li,其中隐藏了第二个li。现在,当li
为this
#test
<ul>
<li id="test">Item 1</li> <!-- From this li -->
<li style="display: none">Item 2</li>
<li>Item 3</li> <!-- Select this li using :visible -->
</ul>
DEMO: http://jsfiddle.net/LgCuk/1/
注意:以上只是一个例子,实际列表很大,元素是随机隐藏的。所以我正在寻找可以选择下一个可见li
的东西。
答案 0 :(得分:3)
使用.next()
和.nextUntil()
将允许您不必迭代整个列表,并在找到第一个匹配项时停止(.nextUntil()
),然后选择您想要的元素(.next()
)。它比直线.nextAll()
便宜。
var $this = $('#test');
$this.nextUntil(':visible').next().css('color', 'red');
<强> jsFiddle example 强>
答案 1 :(得分:1)
答案 2 :(得分:0)
$(document).ready(function(){
$('li').each(function(index){
if($(this).is(":visible")){
alert(index + $(this).text());
}
});
});