jQuery:获取事件处理程序中元素索引的最佳方法
在事件处理程序中检索元素索引的最佳方法是:jQuery:获取事件处理程序中元素索引的最佳方法,jquery,Jquery,在事件处理程序中检索元素索引的最佳方法是: <ul> <li>a</li> <li>b</li> <li>c</li> </ul> $("ul li").click(function() { // what is the index of the list item that was clicked? }); a b c $(“ul li”)。单击(函数(){ //单击的列表项
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
$("ul li").click(function() {
// what is the index of the list item that was clicked?
});
- a
- b
- c
$(“ul li”)。单击(函数(){
//单击的列表项的索引是什么?
});
换句话说,如果我单击“c”项,是否有从事件处理程序中获取索引2的最佳实践
我知道我可以通过查看元素的父元素来确定元素的位置,但我不知道是否有更好或更简洁的方法。调用。这将为您提供以前列表项的数量
$(this).prevAll("li").size();
编辑vie Felix。是的,有一种“索引”方法
所以你可以写:
$("#ul_id li").click(function() {
var index = $("#ul_id li").index(this);
});
以下是文档:
prev
仅选择上一个兄弟姐妹。你想要prevAll
@felix…你说得对。我是凭记忆做的。我将编辑它,它将给出整套
s的索引,包括早期的
s。不,我试过了。这个很好用。事实上,我是直接从文档中获取的。它只能在页面的第一个
中正常工作$(“ul li”)
选择每个
,而不考虑父项。我明白你的意思,但我故意使用了一个简单的css选择器,因为他的示例代码也很简单。显然,在实际应用程序中,您可能希望使用带有ID或类的选择器。但除了使用这个简单的选择器之外,我实际上更喜欢index()语法,因为其他开发人员更清楚正在发生的事情。“在选择器中,获取此元素的索引”这在类似的上下文中对我不起作用。索引始终为0。可能是因为我的选择器是$(“.foo”)
,而不是像$(“.container.foo”)
那样的作用域?Adam的$(“.foo”).index(this)
解决方案确实有效。