Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取同一div中div的uniqe id_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何获取同一div中div的uniqe id

Javascript 如何获取同一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>')

我在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>'); 

}

我尝试了很多不起作用的方法。我必须使用哪个函数获取已单击分区的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;
    ...
}