繁体   English   中英

在javascript数组中查找元素并返回匹配元素的位置

[英]Finding an element in a javascript array and returning the position of the matched element

我为此竭尽全力,但是希望有人在几次尝试失败后都能提供帮助。

我有一个这样的HTML列表:

<ul>
<li><span class="current"></span></li>
<li><span class="normal"></span></li>
</ul>

我正在尝试找出在此列表中找到li元素的方法,该元素具有范围与当前类的范围以及其在ul中的编号。 因此,在这种情况下,将为1。

我尝试使用不同的jquery函数,但我似乎一无所获。 这是现在的样子:

var list = $('ul li');
$.each(list, function(key, value) {
    if( $(this).find('.current') ) {
        alert(key);
    }
});

这只会警告0和1,本质上意味着它不起作用。 有人知道我在做什么错吗?

它将是0而不是1 (JavaScript的索引为零),但是:

$('li:has(span.current)').index();

JS Fiddle演示 ,以及一个更大表的示例

或者您可以使用:

$('span.current').parent().index();

JS Fiddle演示 ,以及一个更大表的示例

要么:

$('span.current').closest('li').index();

JS Fiddle演示 ,以及一个更大表的示例

参考文献:

jQuery选择器(从不)返回falsey值。 所以像这样:

$(this).find('.current')

if语句中将始终返回true。 一种检查存在性的简单方法是使用length属性,该属性表示从选择器中找到了多少个元素。

if ($(this).find('.current').length > 0) {

您的代码将遍历列表中的每个项目并显示其键。

您想要的更像是:

$('mylist').find('.current').each(function(key, value)
    {
        alert(key);
    }

这将仅遍历类为“当前”的项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM