jQuery: 如何获取选择数组中某个元素的索引?
jQuery: how to get the index of an element in the selection array?
我有这样的 HTML 结构:
<div class="container">
<div class="item">
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
</div>
<div class="item">
<a href="#">4</a>
<a href="#">5</a>
<a href="#">6</a>
</div>
</div>
我select所有带jQuery的A,这里一共得到6个对象。我想获取 6 数组中 A 的索引(例如,这样我可以检测到哪个 A 已被单击),但是当我使用 .index() 时,我得到了元素相对于其父元素的索引。因此,对于第 5 个 A,我得到与第 2 个相同的索引,因为第 5 个实际上是其 div.item:
组中的第二个
$('a').click(function(){
console.log ( $(this).index() ); // returns "1" for the 5th A
});
那么有没有办法在 selection 的数组中获取被单击元素的索引,而不是在 DOM 的父级中?
您可以将点击的元素传递给 index
方法:
var $a = $('.container > .item > a').click(function() {
console.log ( $a.index(this) );
});
$('a').click(function(){
$("#result").text($('a').toArray().indexOf(this));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="item">
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
</div>
<div class="item">
<a href="#">4</a>
<a href="#">5</a>
<a href="#">6</a>
</div>
</div>
<div id="result"></div>
查看 jquery .index() 的文档。您可以按如下方式修改代码以获得所需的结果:
$('.container').on("click", "a", function(){
console.log ( $("a").index($(this)));
});
我有这样的 HTML 结构:
<div class="container">
<div class="item">
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
</div>
<div class="item">
<a href="#">4</a>
<a href="#">5</a>
<a href="#">6</a>
</div>
</div>
我select所有带jQuery的A,这里一共得到6个对象。我想获取 6 数组中 A 的索引(例如,这样我可以检测到哪个 A 已被单击),但是当我使用 .index() 时,我得到了元素相对于其父元素的索引。因此,对于第 5 个 A,我得到与第 2 个相同的索引,因为第 5 个实际上是其 div.item:
组中的第二个$('a').click(function(){
console.log ( $(this).index() ); // returns "1" for the 5th A
});
那么有没有办法在 selection 的数组中获取被单击元素的索引,而不是在 DOM 的父级中?
您可以将点击的元素传递给 index
方法:
var $a = $('.container > .item > a').click(function() {
console.log ( $a.index(this) );
});
$('a').click(function(){
$("#result").text($('a').toArray().indexOf(this));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="item">
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
</div>
<div class="item">
<a href="#">4</a>
<a href="#">5</a>
<a href="#">6</a>
</div>
</div>
<div id="result"></div>
查看 jquery .index() 的文档。您可以按如下方式修改代码以获得所需的结果:
$('.container').on("click", "a", function(){
console.log ( $("a").index($(this)));
});