0

我有一个简单的jquery.index()用法,旨在返回具有类的元素的值:

的HTML:

<ul>
  <li>foo</li>
  <li class='on'>bar</li>
  <li>roo</li>
</ul>

JS:

var idx = $('li').index('.on'); 

-1如果类在除第一个元素之外的任何元素上,则返回。我错过了什么?

JSFIDDLE

4

4 回答 4

2

我认为您需要的是$('.on').index('li')以下定义。

.index( selector ) Aselector表示要在其中查找元素的 jQuery 集合。

http://jsfiddle.net/R6mjG/2/

于 2013-01-14T19:54:58.503 回答
2

当与选择器一起使用时,.index返回 jQuery 对象中第一个元素(即 first <li>)在选择器匹配的集合中的位置(在这种情况下.on)。

由于第一个<li>不是由.on(仅与第二个匹配<li>)匹配的集合的一部分,因此该元素被视为未找到,并.index按照记录返回 -1。

如果.on是第一个<li>.index返回集合中仅包含该元素的元素的索引,因此结果将为0.

相反,如果您想在您将使用.on的所有元素中找到元素的索引 - 只要任何具有 class ,它将始终返回一个索引。<li>$(".on").index("li")<li>on

于 2013-01-14T19:57:26.983 回答
1

使用以下内容。

var idx = $('li.on').index();
于 2013-01-14T19:56:34.957 回答
0

你需要做$('.on').index()

于 2013-01-14T19:56:09.713 回答