当我在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?
答案 0 :(得分:2)
您需要使用
var btnId = this.id;
id
属于dom元素,this
是指dom元素,但是当你说$(this).id
时它试图获取jQuery对象的id
属性没有定义。
你可以使用像id
这样的dom元素引用来获取this.id
,也可以像.attr()
$(this).attr('id')