jQuery - 遍历隐藏的 li 元素

标签 jquery jquery-selectors dom-traversal

我是一个 jQuery 新手(网络编码新手也这么认为),我对你能如此轻松地完成这么多事情感到兴奋。但我完全陷入困境,并希望得到任何帮助。

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

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

这也是如此

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

但是,一旦内容被隐藏,这些内容就会更改隐藏元素的类,而不是下一个可见元素的类。我认为 :visible 选择器是我所需要的,但我尝试将它放在任何地方,但无法让它工作。我尝试过的一些事情:

$('+ 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');

所以我的问题可能是“我应该把 :Visible 选择器放在哪里?”但也许这就是错误的开始方式?感谢您的指点。

最佳答案

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

$('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.

引用文献:

关于jQuery - 遍历隐藏的 li 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6388608/

相关文章:

javascript - :not() Selector in a multiple select

javascript - querySelectorAll 和 getElementsBy* 方法返回什么?

c# - 如何在 ASP.NET 中提供自启动事件或警报?

javascript - 调用函数时页面不转换

javascript - 侧面导航始终打开/加载时打开

javascript - 为什么 jquery 选择器不适用于新替换的标签?

javascript - 在表格行的末尾添加编辑/删除按钮

javascript - 如何隐藏特定的tr :nth-child(6) based on the content of a tr:nth-child(7) > td:nth-child(2)

javascript - getElementsByTagName 问题

jquery,获取2个标签之间的所有内容