所以我陷入了这种棘手的局面。我有一个表示数据的变量:
row += '<td>' + c + '<button class="btn btn-success" id="' + callId + ' " onclick="handleCall()">Call</button>' + '<button class="btn btn-danger" id="' + hangupId + ' " onclick="handleHangUp()">Hangup</button>' + '</td>' ;
后来我会把它附加到我的桌子上。现在,当我单击“呼叫”按钮时,我想要获取按钮的ID。我试过这种方式:
function handleClick() {
console.log(this);
}
但它引用了window对象。任何人都可以告诉我实现目标的方法吗?谢谢
答案 0 :(得分:9)
只需将元素ID作为参数传递,以保持简单,
更改,
onclick="handleCall()"
要,
onclick="handleCall(this.id)"
this
指的是用户按下的问题按钮。
然后,
function handleClick(id) {
console.log(id);
}
最后不要使用内联事件处理程序,因为从长远来看它们很难处理,请使用addEventListener
方法。
答案 1 :(得分:0)
row += '<td>' + c + '<button class="btn btn-success" id="' + callId + ' " onclick="handleCall(this)">Call</button>' + '<button class="btn btn-danger" id="' + hangupId + ' " onclick="handleHangUp()">Hangup</button>' + '</td>' ;
function handleClick(element) {
console.log(element);
//here you will have all element properties
}
答案 2 :(得分:-1)
有两种方法可以执行此操作,您可以使用jQuery
通过attr
执行此操作,或者如果您想要保留香草Javascript
,则可以使用.id
}。
jQuery
请参阅以下代码:
console.log(jQuery('element').attr('id'));
Javascript
请参阅以下代码:
console.log(element.id);