我在这里读到很多关于获得指数价值的问题。
我知道如何获取点击索引号的li
。但是,我需要在单击其中的链接时获取li
值。
<ul>
<li><a class=link href="#"></a></li>
<li><a class=link href="#"></a></li>
<li><a class=link href="#"></a></li>
<li><a class=link href="#"></a></li>
</ul>
$("li a.link").click(function(e) {
var i = $(this).index();
alert(i)
});
它不起作用,因为它的索引为a.link
而不是ul li
。如何点击特定的li
时,如何获得a.link
的索引?
答案 0 :(得分:3)
您可以使用jQuery的parent()选择器来定位所点击的锚链接的父元素的索引。
在这种情况下,它将是:$(this).parent().index();
。
$("li a.link").click(function(e) {
var i = $(this).parent().index();
alert(i);
});
如果你想获得实物编号(例如,第一个返回一个,第二个返回两个),你只需要在选择器中添加一个:
$("li a.link").click(function(e) {
var i = $(this).parent().index() + 1;
alert(i);
});
答案 1 :(得分:0)
您可以采取两种方法:计算点击的li所在的位置,或预先对它们进行编号。第二个更有效(点击时间恒定):
var li_elems = $('li.link'),
i = 0,
len = li_elems.length;
for (; i < len; i++) {
li_elems[i].attr('index', i);
}
$('ul').on('click', 'li.link', function (e) {
var index = this.getAttribute('index');
alert(index);
});