如何获取下面代码中点击项目的索引?
$('selector').click(function (event) {
// get index in collection of the clicked item ...
});
使用Firebug我看到了这个:jQuery151017197709735298827: 2
(我点击了第二个元素)。
答案 0 :(得分:91)
这将提示点击选择器的索引(从第一个开始为0):
$('selector').click(function(){
alert( $('selector').index(this) );
});
答案 1 :(得分:57)
$('selector').click(function (event) {
alert($(this).index());
});
答案 2 :(得分:24)
$(this).index()
可用于获取被点击元素的索引。
<div id="container">
<a href="#" class="link">1</a>
<a href="#" class="link">2</a>
<a href="#" class="link">3</a>
<a href="#" class="link">4</a>
</div>
$('#container').on('click', 'a', function() {
console.log($(this).index());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div id="container">
<a href="#" class="link">1</a>
<a href="#" class="link">2</a>
<a href="#" class="link">3</a>
<a href="#" class="link">4</a>
</div>
如果没有参数传递给
.index()
方法,则返回值是一个整数,表示jQuery对象中第一个元素相对于其兄弟元素的位置
将选择器传递给index(selector)
。
$(this).index(selector);
示例:强>
找到被点击的<a>
元素的索引。
<tr>
<td><a href="#" class="adwa">0001</a></td>
</tr>
<tr>
<td><a href="#" class="adwa">0002</a></td>
</tr>
<tr>
<td><a href="#" class="adwa">0003</a></td>
</tr>
<tr>
<td><a href="#" class="adwa">0004</a></td>
</tr>
$('#table').on('click', '.adwa', function() {
console.log($(this).index(".adwa"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<table id="table">
<thead>
<tr>
<th>vendor id</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#" class="adwa">0001</a></td>
</tr>
<tr>
<td><a href="#" class="adwa">0002</a></td>
</tr>
<tr>
<td><a href="#" class="adwa">0003</a></td>
</tr>
<tr>
<td><a href="#" class="adwa">0004</a></td>
</tr>
</tbody>
</table>
答案 3 :(得分:10)
这样做: -
$('ul li').on('click', function(e) {
alert($(this).index());
});
或强>
$('ul li').click(function() {
alert($(this).index());
});
答案 4 :(得分:1)
如果您使用的是.bind(this),请尝试以下操作:
let index = Array.from(evt.target.parentElement.children).indexOf(evt.target);
$(this.pagination).find("a").on('click', function(evt) {
let index = Array.from(evt.target.parentElement.children).indexOf(evt.target);
this.goTo(index);
}.bind(this))
答案 5 :(得分:0)
检查一下 https://forum.jquery.com/topic/get-index-of-same-class-element-on-click 然后 http://jsfiddle.net/me2loveit2/d6rFM/2/
var index = $('selector').index(this);
console.log(index)