我有一个标准清单。
<ul>
<li><a href="#">blah 1</a></li>
<li><a href="#">blah 2</a></li>
<li><a href="#">blah 3</a></li>
<li><a href="#">blah 4</a></li>
</ul>
我的jQuery:
$('ul li a').live('click', function() {
var parent = $(this).parent('li');
});
我想知道的是父li在所点击链接列表中的位置,例如点击blah 3会给我2,等等4会给3等等。
答案 0 :(得分:32)
$('ul li a').live('click', function() {
console.log($(this).parent('li').index());
});
会给你你想要的东西,但要记住这些是基于0的索引 - 即第一个行项目是索引0,最后一个行项目是3。
答案 1 :(得分:2)
您可以使用jquery`s index
获取元素的索引$('ul li a').live('click', function()
{
var index = $(this).index();
});
答案 2 :(得分:2)
无需jQueryfy这个:
$('ul li a').live('click', function() {
var position = 0;
var currentNode = this;
var firstNode = currentNode.parentNode.firstChild;
while(firstNode != currentNode) {
position++;
currentNode = currentNode.previousSibling;
}
alert(position);
});
答案 3 :(得分:2)
我知道这是一篇旧帖子,但{j} 1.7中已弃用.live
并在jQuery 1.9中删除。
另一种方法是使用.delegate
:
$('ul li').delegate('a','click', function() {
alert($(this).parent('li').index());
});
答案 4 :(得分:1)
index方法应该做你想要的。
答案 5 :(得分:1)
$(function() {
$('ul li a').live('click', function() {
var parent = $(this).parent('li');
alert(parent.prevAll('li').size());
});
});