2

短い質問:$this.nextAll().filter(':visible').eq(0) in.nextまたは.nextUntiljQuery 関数に相当するものはありますか?

シナリオ: 3 つの李があり、その中に 2 番目の李が隠されています。今、どのように3番目を選択でき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>

デモ: http://jsfiddle.net/LgCuk/1/

注:上記は単なる例です。実際のリストは巨大で、要素はランダムに隠されています。だから私は next visible を選ぶ何かを探していますli

4

3 に答える 3

3

Using .next() and .nextUntil() will allow you to not have to iterate over the entire list and will stop when the first match is found (.nextUntil()) and then select the element you want (.next()). It's less expensive than a straight .nextAll().

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

jsFiddle example

于 2013-02-26T21:11:31.330 に答える
1

どうですか

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

デモ

于 2013-02-26T21:02:42.530 に答える
0

申し訳ありませんが、あなたは正しかったです。元の投稿に誤りがありました。ただし、これは必要に応じて機能するはずです。

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

});

于 2013-02-26T21:06:00.493 に答える