我正在为要删除的表中的每个按钮创建一个动态按钮。我将按钮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() {
}

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

最佳答案

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

function btnHistorySelect(event) {

    var id = this.id;

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

}

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

关于javascript - javascript动态按钮单击事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13613875/

10-10 22:01
查看更多