获取在JQuery中单击的动态div的名称?

时间:2013-03-19 21:33:07

标签: javascript jquery html5

所以我有一组生成的div,其中有一个名为" class1"的类。我需要能够为它们分配一个名称或ID,然后使用JQuery注册我已经点击了这些div中的特定一个。我有这个代码,但这并不起作用,因为我所知道的是如何选择类名:

jQuery(".class1").click(function () {
     // do something                    
});

我需要能够获取该被点击的div的唯一标识符并将其用于某些内容

2 个答案:

答案 0 :(得分:3)

要访问所点击元素的ID,您可以访问id的{​​{1}}属性,该属性包含所点击的HTML元素的上下文。

this

您提到动态元素,在这种情况下,您需要在添加元素后绑定事件或使用委托绑定。

对于jQuery 1.7及更高版本,请使用on()

jQuery(".class1").click(function () {
     // do something                    
     var theId = this.id; // contains the id of the clicked element, assuming is has an id.
});

对于jQuery 1.6及更早版本,使用delegate()

jQuery("body").on("click", ".class1", function () {
     // do something                    
     var theId = this.id;
});

答案 1 :(得分:1)

如果你是DOM加载后的生成类名,那么你需要使用委托事件处理程序。

jQuery('body').on('click', '.class1', function() {

  // to assign name
  $(this).attr('name', 'someName');

  // to assign ID
  $(this).attr('id', 'someUniqueID');

  // to get

  this.id  //  to get id

  this.name // to get name

});

注意:

如果是委托事件处理,则应使用.class1而不是body的任何静态容器元素。这是有效和最好的方式。