0

我在使用下面的代码时遇到问题,我在 Opera 中不断收到此错误:

Uncaught exception: DOMException: NOT_FOUND_ERR

这在 Chrome 中:

Uncaught Error: NOT_FOUND_ERR: DOM Exception 8

此消息指的是 removeInput 函数:

function addInput() {
  var div = document.createElement("div");
  var txt = "<div>Upload image: <input type='file' name='slika[]' /> <span onclick='removeInput(this.parentNode)' />Remove <img src='catalog/remove_icon.png' /></span></div>";
  div.innerHTML = txt;
  document.getElementById('text').appendChild(div);
}

function removeInput(el) {
  document.getElementById('text').removeChild(el);
}

问题是:如何删除 addInput 函数先前创建的元素?这是动态删除元素的正确方法吗?

4

2 回答 2

1

el.parentNode.removeChild(el);

于 2013-04-20T20:53:49.283 回答
0

<div>首先:你不需要在innerHTML中写“ ”,因为createElement<div></div>默认创建“”。

第二:如果要删除最后插入的元素,则需要在全局变量中插入后保存

var lastInserted = null;
function addInput() {
  var div = document.createElement("div");
  var txt = "Upload image: <input type='file' name='slika[]' /> <span onclick='removeInput(this.parentNode)' />Remove <img src='catalog/remove_icon.png' /></span>";
  div.innerHTML = txt;
  document.getElementById('text').appendChild(div);
  lastInserted = div;
}

function removeInput() {
  if(!lastInserted)return;
  document.getElementById('text').removeChild(lastInserted);
}
于 2013-04-20T20:49:42.983 回答