我正在使用这个 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>
脚本是
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));
}
当我第一次用另一个 div 1、2、3 等替换“突出显示”div 时,该脚本可以正常工作)。因此,当我单击相应的超链接文本时,空白 div (id="highlight") 将填充下面相关 div 的内容(例如 div id="1")。
然后当我单击一个新链接时, div id="highlight" 的内容消失并被新的 div 文本替换。但是我第二次点击在“hightlight” div 为空白之前已被删除的 div。只有当我使用以前未点击的 div 时,它才会被替换。
当我查看 Firefox Web 控制台以查看 Javascript 错误时,它显示:
“组件返回失败代码:0X80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLDivElement.removeChild]”
由于某种原因,它似乎超出了界限。我怎样才能解决这个问题?