我有一个按钮
<button onclick="DeletaItem('template','1234')" id="btn">Deletar_func</button>
和功能
function DeletaItem(tipo,id_cripto){
alert(tipo+id_cripto);
alert($(this).attr('id'));
}
为什么第二个警报未定义?
我有一个按钮
<button onclick="DeletaItem('template','1234')" id="btn">Deletar_func</button>
和功能
function DeletaItem(tipo,id_cripto){
alert(tipo+id_cripto);
alert($(this).attr('id'));
}
为什么第二个警报未定义?
第二个警报是未定义的,因为这不是指按钮,它实际上指的是窗口对象。
您需要将其发送到函数,将 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);
}
试试这个:
$('#btn').click(function(){
alert(this.id);
});
或者
<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 对象