我正在动态地向我的网页添加按钮,然后onclick
我希望得到id
或value
,但它会显示undefined
。这是我的代码:
for(i=1; i<=jj; i++){
$("#buttonPanel").append('<input type="button" class="btn btn-default" style="margin-top:20px; width: 40px;" id="'+i+'" value="'+i+'" onclick="btnpanel()"/>'+'      ');
}
这是事件监听器的jQuery代码:
function btnpanel(){
alert($(this).attr("id"));
alert($(this).attr("value"));
}
答案 0 :(得分:1)
这是我做的:
for (i = 1; i <= jj; i++) {
$("#buttonPanel").append('<input type="button" class="btn btn-default" style="margin-top:20px; width: 40px;" id="' + i + '" value="' + i + '" />' + '      ');
}
$("#buttonPanel").on("click", ".btn", function () {
alert($(this).attr("id"));
alert($(this).attr("value"));
});
答案 1 :(得分:1)
如果你想要一个没有jQuery解决方案并希望使用onclick处理程序,
将this
中的onclick="btnpanel()"
作为onclick="btnpanel(this)"
传递。
你的btnpanel功能看起来像,
function btnpanel(obj){
alert(obj.id);
alert(obj.value);
}
答案 2 :(得分:0)
将事件委托给容器元素并删除onclick
属性:
$(function(){
$("#buttonPanel").on('click', '.btn', function(){
alert(this.id);
alert(this.value);
});
});
作为旁注,ID不应该以数字开头,即使HTML5规范允许,但所有浏览器或CSS上的DOM节点方法仍然不支持。