Jquery动态元素选择器

时间:2016-04-07 18:31:29

标签: javascript jquery

我知道这个问题已经得到了很多回答,但是当我应用这个解决方案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);
});

.fooa.delete的父元素 此代码隐藏了具有类.foo的所有元素,并删除了具有类a.delete的第一个元素而不是被单击的元素

如何检索我点击的元素的ID并隐藏其父元素?

2 个答案:

答案 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);
});