我写了下面的代码

function byId(id) {
  return document.getElementById(id);
}
function addElm(root,elm) {
  document.createElement(elm);
  if(!root) {
      root = document;
  }
  root.appendChild(elm);
  return elm;
}
document.addEventListener('DOMContentLoaded',function() {
  var elm = byId('myExistingElmId');
  addElm(elm,'span');
},false);


我的文档中有ID为“ myExistingElmId”的元素。
线

root.appendChild(elm);


在控制台中给我以下错误

Uncaught error: NOT_FOUND_ERR: DOM Exception 8


为什么会这样呢?

最佳答案

您的addElm函数是错误的-您正在丢弃document.createElement的结果。

它应该是:

function addElm(root, type) {
  var elm = document.createElement(type);
  if(!root) {
      root = document.body;
  }
  root.appendChild(elm);
  return elm;
}


http://jsfiddle.net/alnitak/wAuvJ/

[@Ethan也应该是document.body是正确的,但这与您在不执行该代码路径时所看到的实际错误有关”

关于javascript - Javascript HTMLDOM appendChild导致DOM异常8,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10408595/

10-13 00:15