Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript removechild给出NS\u错误\u无效\u指针错误_Javascript_Dom - Fatal编程技术网

Javascript removechild给出NS\u错误\u无效\u指针错误

Javascript removechild给出NS\u错误\u无效\u指针错误,javascript,dom,Javascript,Dom,我使用这个Javascript命令将一个空div替换为页面上另一个div的值。因此,我的html中有以下内容: <a href = "... some links that call the javascript ...">text link</a> <div id="highlight"> </div> <div id="1"> ...some text </div> <div id="2"> ... so

我使用这个Javascript命令将一个空div替换为页面上另一个div的值。因此,我的html中有以下内容:

<a href = "... some links that call the javascript ...">text link</a>
<div id="highlight">
</div>

<div id="1">
...some text
</div>

<div id="2">
... some text
</div>
当我第一次用另一个div 1、2、3等替换“highlight”div时,脚本工作正常。因此,当我点击适当的超链接文本时,空白div(id=“突出显示”)被下面的关联div的内容填充(例如div id=“1”)。 然后,当我单击一个新链接时,div id=“highlight”的内容消失,并替换为新的div文本。但是第二次我点击一个在“hightlight”div为空之前被删除的div。仅当我使用以前未勾选的div时,它才会被替换

当我在Firefox Web控制台中查看Javascript错误时,它会说:

“组件返回故障代码:0X80004003 (NS\u错误\u无效\u指针)[nsidomhtmldevelment.removeChild]“


似乎出于某种原因,它已经越界了。如何解决这个问题?

我建议使用“innerHTML”来移动div内容,而不是在节点级别修改DOM

迭代?您发布的代码不会迭代。你能安装一个JS小提琴吗?对不起,我编辑了这个。这不是一次迭代,而是通过再次单击链接再次调用脚本。当我执行removechild时,添加到id=highlight“的div在页面上的任何地方都被删除。这就是为什么我不能再次添加它。为什么要删除原始div?(例如)
settext(newdiv) {
  // set top of page highlight to appropriate text
  var desc = document.getElementById('highlight');
  if (desc.hasChildNodes()) desc.removeChild(desc.lastChild);
  document.getElementById('highlight').appendChild(
    document.getElementById(newdiv));
  }