所以我试图在纯JavaScript中创建一个类似CRUD的基本应用程序,所以请不要回答jQuery。
拥有一个数据库,所有人都会来,我是新手,所以我将它作为一种学习工具。
问题是:我正在尝试使用输入和两个按钮创建新行。一个用于删除它自己的行,另一个用于“保存”写入输入的文本。
问题是,当我使用this.parentNode.parentNode.remove();
是有效的,但由于这是相当新的,尚未完全支持,特别是IE我想使用removeChild
方法,但我不能修正它。请有人帮帮我吗?
提前致谢。
以下是脚本代码,以便您可以查看是否有任何错误(删除功能在最后):
var $ = function (elem) {
return document.getElementById(elem);
}
var _ = function (elem) {
return document.getElementsByClassName(elem);
}
$("btnAdd").addEventListener("click", Add, true);
function Add() {
var saveElements = _("btnSave");
var deleteElements = _("btnDelete");
nodeElement = document.createElement("tr");
nodeElement.innerHTML = "<td><input type='text'/></td>"+
"<td><input type='text'/></td>"+
"<td><input type='text'/></td>"+
"<td><button class='btnSave btn blue'>S</button><button class='btnDelete btn red'>D</button></td>";
$("newElement").appendChild(nodeElement);
for (var i = 0; i < saveElements.length; i++) {
saveElements[i].addEventListener("click", Save, true);
}
for (var i = 0; i < deleteElements.length; i++) {
deleteElements[i].addEventListener("click", Delete, true);
}
}
function Save() { }
function Delete() {
this.parentNode.parentNode.remove();
}
答案 0 :(得分:0)
要使用removeChild删除元素,必须选择父元素然后将要删除的元素传递给removeChild
。
this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
这会删除this.parentNode.parentNode
this.parentNode.parentNode.removeChild(this)
无效,因为this
不是this.parentNode.parentNode