Javascript 如何在jquery中获取单击的元素id

Javascript 如何在jquery中获取单击的元素id,javascript,jquery,html,Javascript,Jquery,Html,在这里,我创建了一个购物清单,我有一个文本框来输入项目,并通过提交按钮将项目添加到数组中。 提交时,项目将被推送到数组中,列表将被更新。我试图做的是,当我单击任何列出的项目时,我应该能够获取其id,但无法获取。我如何解决此问题 以下是我所做的: “严格使用”; (功能(){ var itemslist=[]; $(“#添加列表”)。单击(函数(e){ var item=$('#itemname').val(); 如果(项目==''){ 警报('不能为空!') 返回false; }否则{ e、

在这里,我创建了一个购物清单,我有一个文本框来输入项目,并通过提交按钮将项目添加到数组中。 提交时,项目将被推送到数组中,列表将被更新。我试图做的是,当我单击任何列出的项目时,我应该能够获取其id,但无法获取。我如何解决此问题

以下是我所做的:

“严格使用”;
(功能(){
var itemslist=[];
$(“#添加列表”)。单击(函数(e){
var item=$('#itemname').val();
如果(项目==''){
警报('不能为空!')
返回false;
}否则{
e、 预防默认值();
项目列表推送(项目);
更新();
}
})
var update=函数(){
$(“#购物清单”).empty();
itemslist.forEach(函数(值、索引){
$('#shopList').append(“+value+”)//将项成功推送到数组后,将追加列表项
})
}
$('.items list')。单击(函数(){
console.log(this.id);//无法获取单击的元素id
})
})(窗口)

添加到列表中
我们应该这样做

函数不工作,因为它未绑定到动态创建的元素

要绑定它,请选择层次结构中较高的元素,然后检查单击了哪个元素。您可以按以下方式执行此操作:

$(body).on('click','.items-list', function() {
    console.log($(this).attr('id') );
});

这实际上相当于
这个.id
,我保证不会解决这个问题。是的,我添加了真正的修复程序。你能告诉我为什么
控制台.log(this.id)
不起作用吗?@MohammadUsman答案没有很好地解释,但是由于你的项目是动态加载的,你需要使用(以上答案的第二部分)@Pete谢谢你的回复。我会详细了解活动代表团的情况。
$(body).on('click','.items-list', function() {
    console.log($(this).attr('id') );
});