2

我正在为要删除的表格中的每个 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() {
}

事件处理程序被调用,但我不知道点击的是哪个按钮。

4

4 回答 4

4

您可以使用this.idorevent.target.id属性来获取启动事件的按钮的 ID。

function btnHistorySelect(event) {

    var id = this.id;

         or
   // var elem = event.target;
   // var id = elem.id

}

因为您正在分配函数引用,所以函数内部的this对应于当前元素是问题。

于 2012-11-28T20:34:12.550 回答
3
function btnHistorySelect(event) {
   alert(event.target); // Will alert the actual element clicked.
}
于 2012-11-28T20:34:53.810 回答
2

如果你使用这个,你不需要知道或分配一个 id

于 2012-11-28T20:34:21.973 回答
2

HTML 输入按钮元素可btnHistorySelect通过this变量在函数内部使用。

于 2012-11-28T20:34:56.063 回答