我有一系列 li
项,需要最有效的方法来循环它们并返回索引。不过,我需要交叉检查 li 的类,如果它具有某个类,则不返回索引。
这基本上适用于具有键盘支持的应用程序样式菜单。本质上,请考虑以下标记:
<ul>
<li class="selected">First Item</li>
<li class="disabled">Second Item</li>
<li class="separator">Third Item</li>
<li>Fourth Item</li>
</ul>
我想要一个可以用来循环 li
元素的函数,并返回下一个索引(selected
的类将应用于下一个可选项目)。目前,我正在循环并简单地检查 li
是否具有 separator
类,如果有,则增加索引并返回它。
但是,在上面的示例中,该函数应返回 3
,因为无法选择任何具有 disabled
或 separator
类的项目.
有人可以就如何使用 jQuery 实现这一目标提供一些建议吗?我想也许可以做这样的事情:
function get_next_index()
{
var current_index = $('ul li.selected');
var index = $('ul li:gt(' + current_index + ')').not('.disabled').not('.separator').get(0).index();
if(!index || index < current_index)
{
return -1;
}
else
{
return index;
}
}
最佳答案
这样的事情应该有效:
alert($("li:not(.disabled,.separator)").index());
您可以在此处查看它的实际效果:
我对你的问题有点困惑,所以如果我有什么问题请告诉我。我建议阅读 index方法看看是否符合您的预期。
关于javascript - 循环遍历元素直到在 jQuery 中找到匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8424460/