通过按钮插入后无法删除行 - HTML/JS
Cannot delete a row after I inserted it via button - HTML/JS
我有一个 table 是我在文件上传后填写的。
当我上传文件时,我可以删除选定的行。
但是当我通过点击添加一行时,我无法再删除这一行。
使用以下内容创建行:
function addTableRow(table, value)
{
var table = document.getElementById("tablebody");
var row = table.insertRow();
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
cell1.innerHTML = value;
cell2.innerHTML = '<img class="table-remove" style="height:15px;" src="images/delete.png">';
}
点击图片添加行
$('.table-add').click(function () {
tableAddRow(document.getElementById("tablebody", "TEST"));
});
删除行
$('.table-remove').click(function () {
$(this).parents('tr').remove();
});
我无法删除通过单击按钮添加的行。
似乎找不到手动添加的行的 $('.table-remove')。
此时我卡住了。
感谢您的任何建议!
发生这种情况是因为事件绑定发生在文档加载时。在初始 document.ready 之后插入 DOM 的任何元素都不会被已经 运行 的代码识别。如果在页面加载后动态 insert/remove 元素,则需要在插入新元素时将事件绑定到新元素。
正如 Lalalena 的回答所建议的,您需要将函数与 document
绑定,以便它在 DOM
中注册,如下所示:
$(document).on('click', '.table-remove', function () {
$(this).parents('tr').remove();
});
我有一个 table 是我在文件上传后填写的。 当我上传文件时,我可以删除选定的行。
但是当我通过点击添加一行时,我无法再删除这一行。
使用以下内容创建行:
function addTableRow(table, value)
{
var table = document.getElementById("tablebody");
var row = table.insertRow();
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
cell1.innerHTML = value;
cell2.innerHTML = '<img class="table-remove" style="height:15px;" src="images/delete.png">';
}
点击图片添加行
$('.table-add').click(function () {
tableAddRow(document.getElementById("tablebody", "TEST"));
});
删除行
$('.table-remove').click(function () {
$(this).parents('tr').remove();
});
我无法删除通过单击按钮添加的行。 似乎找不到手动添加的行的 $('.table-remove')。
此时我卡住了。 感谢您的任何建议!
发生这种情况是因为事件绑定发生在文档加载时。在初始 document.ready 之后插入 DOM 的任何元素都不会被已经 运行 的代码识别。如果在页面加载后动态 insert/remove 元素,则需要在插入新元素时将事件绑定到新元素。
正如 Lalalena 的回答所建议的,您需要将函数与 document
绑定,以便它在 DOM
中注册,如下所示:
$(document).on('click', '.table-remove', function () {
$(this).parents('tr').remove();
});