Javascript jQuery使用$.on事件处理程序获取已单击元素的索引
我已经看到了使用以下代码获取单击元素索引的方法:Javascript jQuery使用$.on事件处理程序获取已单击元素的索引,javascript,jquery,Javascript,Jquery,我已经看到了使用以下代码获取单击元素索引的方法: $('.element').mouseup(function() { var index = $(this).index(); }); 但是,由于动态生成元素的方式,我必须附加事件处理程序,如下所示: $(document).on("mouseup", ".element", function(){ //Do things }); 由于$(此)将简单地返回文档,因此如何查找触发事件的元素的索引?一种方法是获取父元素,通过以下方式
$('.element').mouseup(function() {
var index = $(this).index();
});
但是,由于动态生成元素的方式,我必须附加事件处理程序,如下所示:
$(document).on("mouseup", ".element", function(){
//Do things
});
由于
$(此)
将简单地返回文档,因此如何查找触发事件的元素的索引?一种方法是获取父元素,通过以下方式选择子元素:
let index = $(this).parent().children();
let index = $(this).parent().children();
然后,使用此命令获取索引:
index.index(this);
index.index(this);
总而言之,虽然我不知道为什么索引在这里是相关的
$(document).on("mouseup", ".element", function(){
let index = $(this).parent().children();
index = index.index(this);
});
这是一个可运行的版本
一种方法是抓住父对象,通过以下方式选择子对象:
let index = $(this).parent().children();
let index = $(this).parent().children();
然后,使用此命令获取索引:
index.index(this);
index.index(this);
总而言之,虽然我不知道为什么索引在这里是相关的
$(document).on("mouseup", ".element", function(){
let index = $(this).parent().children();
index = index.index(this);
});
$(document).on(“mouseup”,“.element”,function()){
让索引=$(this.parent().children();
索引=索引。索引(本);
console.log(索引)
});代码>
测试0
测试1
测试2
测试3
测试4
测试5
我实际上弄错了$(this)
在```$(文档)的范围内调用;实际返回触发此事件的元素
这意味着我的问题毫无意义,但如果其他人有同样的错误问题,我会把它留给历史来考虑。
<body>
<ul class="element">
<li >one</li>
<li >two</li>
<li >three</li>
<li >four</li>
<li >five</li>
<li >six</li>
</ul>
<script>
$(document).on("mouseup", ".element", function (e) {
//Do things
//var index = $(this).index();
console.log($(e.target).index());
});
</script>
</body>
- 一个
两个
- 三个
- 四个
- 5
六
$(document).on(“mouseup”,“.element”,函数(e){
//做事
//var index=$(this.index();
log($(e.target.index());
});
对于这种html,您所需要做的就是在回调中包含事件对象。
如上所示,它在控制台窗口上打印索引。$('.element')
返回一个元素数组,而index是该数组的索引。在您的上下文中,索引没有任何意义。您试图实现什么?类中有多个元素触发页面上的mouseup事件。我需要索引,以便以后可以使用$(“.element).eq(n)
,以便可以将更改应用于触发事件的特定元素。使用$(this)有什么问题
哪个也会返回元素?听起来你很难做到这一点。如果元素是动态生成的,索引可能会更改,等等。如果你想用更简单的方式使用鼠标单击,谢谢你的回答,但遗憾的是,我错了,使用$(这个)在on事件处理程序中,确实返回触发事件的元素。如果不是这样,您的答案将不起作用,因为您将尝试检索文档的父级,该父级不存在。它确实是,但不返回索引。我想我误解了问号否,它将返回$(此)
您单击的元素会建议您将问题记下来。它没有真正意义。更有可能会让人困惑。