我正在为要删除的表中的每个for做一个动态按钮。我让按钮id有行的键,所以我可以点击查询,知道要删除哪一个。因为我正在为所有按钮分配相同的功能,所以我需要传递被单击到事件处理程序的按钮,这样我就可以从事件处理程序内部查询id。
硬编码时我只是将'this'传递给事件处理程序。制作动态按钮时如何执行此操作?
现在我有:
{
var cell0 = row.insertCell(0);
var btn = document.createElement("input");
btn.type = "button";
btn.id = "btnHistorySelect_" + roundHdr[i].id; // append the id to the name so we can get it when select button is clicked so we know what round to select as current
btn.value = "Set Current";
btn.onclick = btnHistorySelect;
cell0.appendChild(btn);
}
function btnHistorySelect() {
}
调用事件处理程序,但我不知道是什么按钮进行了点击。
答案 0 :(得分:4)
您可以使用this.id
或event.target.id
属性来获取发起活动的按钮的ID。
function btnHistorySelect(event) {
var id = this.id;
or
// var elem = event.target;
// var id = elem.id
}
因为您正在分配函数引用,所以函数内的 this 对应当前元素是个问题。
答案 1 :(得分:3)
function btnHistorySelect(event) {
alert(event.target); // Will alert the actual element clicked.
}
答案 2 :(得分:2)
如果您使用此
,则无需知道或指定ID答案 3 :(得分:2)
HTML输入按钮元素在btnHistorySelect
函数中通过this
变量。