我有一个html列表,当单击其子元素时,我需要获取索引li。
我有这个:
<ul>
<li><a>item 1</a></li>
<li><a>item 2</a></li>
<li><a>item 3</a></li>
</ul>
在其他情况下,我会使用
$('li').click(function() {
$(this).index();
});
但是在这种情况下,我需要在单击a时获得li索引,所以我尝试:
$('li a').click(function() {
$(li).index();
});
我期望li索引,但在console.log上只能得到0
答案 0 :(得分:0)
获取点击的anchor
标签的父级,并从lis
数组中找到它的索引。
$('li a').click(function() {
const lis = $('li');
const index = lis.index($(this).parent());
console.log(index);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li><a>item 1</a></li>
<li><a>item 2</a></li>
<li><a>item 3</a></li>
</ul>
答案 1 :(得分:0)
您可以在jquery中使用.closest()
(如果某些a
不是li
的直接子代,否则.parent()
就可以了)。
演示:
$('li a').click(function() {
console.log($(this).closest('li').index());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li><a>item 1</a></li>
<li><a>item 2</a></li>
<li><a>item 3</a></li>
</ul>
答案 2 :(得分:0)
您可以尝试使用parent
$('li a').click(function() {
console.log($(this).parent().index());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li><a>item 1</a></li>
<li><a>item 2</a></li>
<li><a>item 3</a></li>
</ul>