javascript - 循环遍历元素直到在 jQuery 中找到匹配项

标签 javascript jquery loops

我有一系列 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,因为无法选择任何具有 disabledseparator 类的项目.

有人可以就如何使用 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());

您可以在此处查看它的实际效果:

http://jsfiddle.net/Zf9Vv/

我对你的问题有点困惑,所以如果我有什么问题请告诉我。我建议阅读 index方法看看是否符合您的预期。

关于javascript - 循环遍历元素直到在 jQuery 中找到匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8424460/

相关文章:

javascript - 如何破坏性地从字符串中的两个点删除字符?

javascript - DataTables javascript 无法应用于重复表

java - 更改输入循环条件会跳过一半的输入值

python - CS Circles 部分 7C 编码练习 : One Triangle 中的循环

python - 我可以通过使用循环使迭代变得更容易吗?

javascript - 数组切片最后 1500 个数组元素 - Javascript

javascript - 使用 MooTools 的水平 Accordion

Javascript从字符串中提取值

jquery - 如何固定表头?

javascript - Codeigniter 中的 JQuery Ajax POST 不起作用