jQuery - 遍历隐藏的li元素

时间:2011-06-17 16:11:30

标签: jquery jquery-selectors dom-traversal

我是一个完整的jQuery新手(很好的网络编码新手来),我很高兴你可以轻松地做多少。我完全坚持这一点,并希望得到任何帮助。

我有一个带有颜色样本列表的ul。然后我通过显示和隐藏来过滤这些。将鼠标悬停在一个样本上时,我需要更改可见的下一个兄弟样本的类。这实现了它,直到我隐藏任何东西:

$('+ li', this).toggleClass('swatchroll-sister');

就像这样

$(this).next().toggleClass('swatchroll-sister');

然而,一旦隐藏了这些东西,那么就改变隐藏元素的类,而不是下一个可见元素。我认为:可见选择器是我需要的,但我已经尝试过把它放在任何地方而且无法让它工作。我试过的一些事情:

$('+ li:visible', this).next().toggleClass('swatchroll-sister');
$(this).next('li:visible').toggleClass('swatchroll-sister');
$('+ li', this).toggleClass('swatchroll-sister');
$('+ li', this).('item:visible').toggleClass('swatchroll-sister');

所以我的问题可能是“我在哪里放置:可见选择器?”但也许这是开始的错误方法?谢谢你的任何指示。

1 个答案:

答案 0 :(得分:3)

如果没有看到您的确切代码,我只能建议:

$('li').click(
    function(){
        var i = $(this).index('li:visible');
        var nextVisible = $(this).closest('ul').find('li:visible').eq(i+1);
        $(nextVisible).addClass('classNameToAdd');
    });

JS Fiddle demo

请注意,选择器传递给index()方法,该方法在选择器返回的元素中查找当前元素的索引,在本例中为li:visible

参考文献: