我知道这个问题已经得到了很多回答,但是当我应用这个解决方案Event binding on dynamically created elements?时,选择器选择所有元素并仅检索第一个元素
$('body').on('click','a.delete',function() {
var id = $('a.delete').attr('id');
var par = $('a.delete').closest('.foo');
console.log(id);
par.hide();
postDelete(id);
});
.foo
是a.delete
的父元素
此代码隐藏了具有类.foo
的所有元素,并删除了具有类a.delete
的第一个元素而不是被单击的元素
如何检索我点击的元素的ID并隐藏其父元素?
答案 0 :(得分:0)
您应该在点击事件中使用this
而不是a.delete
来获取点击a.delete
的引用,如下所示。
$('body').on('click', 'a.delete', function () {
var id = $(this).attr('id'); //change here
var par = $(this).closest('.foo'); //change here
console.log(id);
par.hide();
postDelete(id);
})
答案 1 :(得分:0)
使用this
获取clicked
元素。
从docs,除了事件对象之外,事件处理函数还可以通过关键字this
访问处理程序绑定的DOM元素
$('body').on('click', 'a.delete', function() {
var id = $(this).attr('id');
var par = $(this).closest('.foo');
console.log(id);
par.hide();
postDelete(id);
});