我在尝试设置一行时遇到问题,当按下删除按钮时,该行将从表中删除。当我如下所示设置 onclick 方法时,它将在创建该行时自动删除该行。我假设它正在调用该函数
我发现您应该在分配此类值时删除括号,这会导致问题。但由于显而易见的原因,我需要行 id 才能删除该行。
name = "thomas";
foo = "foo";
bar = "bar";
// Create a new row
var row = table.insertRow();
row.id = name;
// Create cells with requested information
row.insertCell().innerText = name;
row.insertCell().innerText = foo;
row.insertCell().innerText = bar;
var removeButton = document.createElement("BUTTON");
removeButton.innerHTML = "Remove";
removeButton.onclick = deleteRow(row.id);
var removeButtonCol = row.insertCell();
removeButtonCol.appendChild(removeButton);
function deleteRow(rowID)
{
var row = document.getElementById(rowID);
row.parentNode.removeChild(row);
}
那么我该如何解决这个问题呢?我不知道如何为需要括号的函数设置 onclick,也不知道如何在按下属于 rwo 的按钮时以更简单的方式传递行 id
最佳答案
所以事实证明我应该使用事件监听器而不是 onclick 方法。
EG,我们执行 onclick 的地方:
var removeButton = document.createElement("BUTTON");
removeButton.innerHTML = "Remove";
removeButton.addEventListener('click', function () {
deleteRow(row.id)
});
这很好用
关于javascript - 向按钮的 onclick 添加一个带有参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43949577/