我有一个按钮
<button onclick="DeletaItem('template','1234')" id="btn">Deletar_func</button>
功能
function DeletaItem(tipo,id_cripto){
alert(tipo+id_cripto);
alert($(this).attr('id'));
}
为什么第二个警报未定义?
答案 0 :(得分:4)
第二个警告未定义,因为此未引用该按钮,它实际上是指窗口对象。
您需要将此发送到该功能,将onclick更改为以下内容:
onclick="DeletaItem(this, 'template', '1234')"
并且还按如下方式更改功能:
function DeletaItem(button, tipo, id_cripto) {
alert(tipo + id_cripto);
alert(button.id);
}
或保留onclick,并在函数中使用 event.target ,而不是 this 。
function DeletaItem(tipo, id_cripto) {
alert(tipo + id_cripto);
alert(event.target.id);
}
答案 1 :(得分:2)
试试这个:
$('#btn').click(function(){
alert(this.id);
});
OR
<button onclick="DeletaItem(this,'template','1234')" id="btn">Deletar_func</button>
function DeletaItem(obj,tipo,id_cripto){
alert(tipo+id_cripto);
alert($(obj).attr('id'));
alert(obj.id);
// alert(this); if uncomment this, you will see it is eqaul window object
}
当使用onclick属性调用函数时,它不会像第一个那样成为对象,因此你不能使用this
;这里this
是window objectm,但在第一个中,jQuery对象将被传递