我有一个简单的jquery.index()用法,旨在返回具有类的元素的值:
的HTML:
<ul>
<li>foo</li>
<li class='on'>bar</li>
<li>roo</li>
</ul>
JS:
var idx = $('li').index('.on');
-1
如果类在除第一个元素之外的任何元素上,则返回。我错过了什么?
我有一个简单的jquery.index()用法,旨在返回具有类的元素的值:
的HTML:
<ul>
<li>foo</li>
<li class='on'>bar</li>
<li>roo</li>
</ul>
JS:
var idx = $('li').index('.on');
-1
如果类在除第一个元素之外的任何元素上,则返回。我错过了什么?
我认为您需要的是$('.on').index('li')
以下定义。
.index( selector )
Aselector
表示要在其中查找元素的 jQuery 集合。
当与选择器一起使用时,.index
返回 jQuery 对象中第一个元素(即 first <li>
)在选择器匹配的集合中的位置(在这种情况下.on
)。
由于第一个<li>
不是由.on
(仅与第二个匹配<li>
)匹配的集合的一部分,因此该元素被视为未找到,并.index
按照记录返回 -1。
如果.on
是第一个<li>
则.index
返回集合中仅包含该元素的元素的索引,因此结果将为0
.
相反,如果您想在您将使用.on
的所有元素中找到元素的索引 - 只要任何具有 class ,它将始终返回一个索引。<li>
$(".on").index("li")
<li>
on
使用以下内容。
var idx = $('li.on').index();
你需要做$('.on').index()