jQuery .next和伪选择器

时间:2013-02-26 21:00:04

标签: jquery

简短问题$this.nextAll().filter(':visible').eq(0).next jQuery函数中是否有.nextUntil

场景我有3个li,其中隐藏了第二个li。现在,当lithis

时,如何选择第3 #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的东西。

3 个答案:

答案 0 :(得分:3)

使用.next().nextUntil()将允许您不必迭代整个列表,并在找到第一个匹配项时停止(.nextUntil()),然后选择您想要的元素(.next())。它比直线.nextAll()便宜。

var $this = $('#test');
$this.nextUntil(':visible').next().css('color', 'red');

<强> jsFiddle example

答案 1 :(得分:1)

怎么样

$this.nextAll(':visible:first')

DEMO

答案 2 :(得分:0)

抱歉,你是对的。我的原帖不正确。这应该可以按你的要求工作。

$(document).ready(function(){
$('li').each(function(index){
    if($(this).is(":visible")){
    alert(index + $(this).text());
    }
});

});