选择器数组中元素的jquery索引

时间:2011-09-22 13:56:32

标签: jquery arrays selector

我正在尝试获取jquery选择器返回的数组中元素的索引。

这是我的代码:

$("div").click( function(){
  alert( $.inArray( $(this), $("#div") ) );
});

这个HTML的一个例子:

<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>

当用户点击包含D的div时,我希望它显示“4”。有没有办法做到这一点?当应用于选择器时,这个inArray函数似乎没有达到我的预期。

4 个答案:

答案 0 :(得分:2)

你只想:

$("div").click(function(){
  alert($(this).index("div"));
});

(您需要在.index()调用的结果中加1,因为索引是从0开始的。)

示例: http://jsfiddle.net/andrewwhitaker/tdcVU/

答案 1 :(得分:0)

您可以使用的另一种方法是prevAll()

alert($(this).prevAll("div").length + 1);

答案 2 :(得分:0)

.index()

var selectedItem = $(this); var index = $('div')。index(selectedItem);

答案 3 :(得分:0)

以下是您的代码更新 -

$("div").click( function(){
  alert( $.inArray( this, $("div") ) );
});

更改是 -

  • 将传递给inArray数组参数的选择器从#div更改为div
  • 传递了一个普通的JavaScript DOM元素而不是jQuery包装 元素进入inArray函数

工作演示 - http://jsfiddle.net/ipr101/CfY8j/