[英]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.