如何获取触发函数的按钮的id?

时间:2012-05-14 01:48:57

标签: javascript jquery

我有一个按钮

   <button onclick="DeletaItem('template','1234')" id="btn">Deletar_func</button>

功能

   function DeletaItem(tipo,id_cripto){
       alert(tipo+id_cripto);
       alert($(this).attr('id'));
   }

为什么第二个警报未定义?

2 个答案:

答案 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对象将被传递