为什么我不能使用委托引用id?

时间:2014-07-15 00:53:34

标签: javascript jquery

当我在Javascript中使用append()函数提供一些html数据时,如:

$("#box").append("<button class='primary' id='1'>Button 1</button><button class='primary' id='2'>Button 2</button>");

并且,在使用delegate()on()时,引用的ID未定义:

$("div#box button.primary").on("click",function(){
        var btnId = $(this).id;

        //Do something Using the Button Id
        alert("Ouch! You clicked button " + btnId);

}); 

警告

  

哎哟!您单击了未定义的按钮

为什么我不能引用ID?

1 个答案:

答案 0 :(得分:2)

您需要使用

var btnId = this.id;

id属于dom元素,this是指dom元素,但是当你说$(this).id时它试图获取jQuery对象的id属性没有定义。

你可以使用像id这样的dom元素引用来获取this.id,也可以像.attr()

那样使用jQuery的$(this).attr('id')