Javascript 如何获取同一div中div的uniqe id
我在jquery方面遇到了麻烦。具体来说,我有一个div as,在这个div中,我使用append()函数创建了很多div。每个div都有onclick函数。当ı单击我想要的时,我需要获取div的id。jqueryJavascript 如何获取同一div中div的uniqe id,javascript,jquery,html,Javascript,Jquery,Html,我在jquery方面遇到了麻烦。具体来说,我有一个div as,在这个div中,我使用append()函数创建了很多div。每个div都有onclick函数。当ı单击我想要的时,我需要获取div的id。jquery for (var i=1; i<=count ; i++){ $('#pages').append('<div onclick="GoToImage(); return false;" id='+i+'; class="pageNo"> </div>')
for (var i=1; i<=count ; i++){
$('#pages').append('<div onclick="GoToImage(); return false;" id='+i+'; class="pageNo"> </div>');
}
我尝试了很多不起作用的方法。我必须使用哪个函数获取已单击分区的id。在
GoToImage
中执行
var id = this.id;
它将为您提供单击的div的id,只需将此传递给
onclick()
方法:它将整个div
对象传递给函数,您就可以获得它的属性
$('#pages').append('<div onclick="GoToImage(this); return false;" id='+i+'; class="pageNo"> </div>');
不要使用内联事件处理程序-它们已经过时,会给您带来很多问题 在这种情况下,您可以使用事件委派:
$('#pages').on('click', 'div.pageNo', GoToImage);
只做一次,在循环之外。从代码中删除onclick
属性。对div的任何单击都将弹出到#pages
元素,在那里它们将由GoToImage
处理
使用GoToImage
可以使用this
引用单击的div,如果您实际需要,可以使用this.id
获取该元素的id:
function GoToImage(ev) {
var id = this.id;
...
}
$(this.attr('id')
是一种jQuery反模式-使用this.id
。还要注意,内联事件处理程序甚至没有正确设置this
-它必须像这样传递:onclick=“GoToImage(this)”
。最好完全避开它们。这是我的朋友。我得到了一些东西,但我不明白它是如何工作的。这个元素在代码中的作用是什么?@user2908225元素是当您单击div时通过GoToImage()
传递的div对象。@user2908225如果有帮助,您可以接受适当的答案。:)我确信你的解决办法是有指导意义的。但我不明白,我不能那样做。为什么我需要在()上使用?你能给我一些链接的例子吗?你可以使用.on()
,因为这就是jQuery的工作原理——这是jQuery的基本用法——因为on()不必特别使用元素的id号。无论如何,它会返回单击的元素吗?我说的对吗?@user2908225您是否需要id
取决于GoToImage
的实现。您当前的版本似乎没有使用它。但是是的,在函数中,这个将是单击的元素。
$('#pages').on('click', 'div.pageNo', GoToImage);
function GoToImage(ev) {
var id = this.id;
...
}