gpt4 book ai didi

javascript - 需要帮助避免 HIERARCHY_REQUEST_ERR : DOM Exception 3 error

转载 作者:行者123 更新时间:2023-11-30 06:03:27 25 4
gpt4 key购买 nike

我正在使用带有 backbone 和 adobe air 的 javascript。在我的 View 模型中,我有一个解析函数,它保存响应(Dom 对象),稍后,当用户点击保存时,我想向保存的响应添加几个节点,但我得到 Dom 异常 3,任何帮助?这里有一些代码供引用。

parse: function(resp, xhr){
this.treeDoc = xhr.responseXML
//parse routine
}

在路上的某个地方,当用户想要保存时

var xmlTree = createMyXML(); //creates a sub xml tree
this.treeDoc.appendChild(xmlTree ); //DOM Error 3 thrown

有什么建议吗?

最佳答案

您可能必须先调用 adoptNode:

this.treeDoc.adoptNode(newElements);

然后附加到子节点,如:

this.treeDoc.documentElement.firstChild.appendChild(newElements);

此外,如果 newElements 是一个新元素数组(如名称所示),您将需要遍历它。

参见 https://developer.mozilla.org/en/DOM/document了解更多信息。

对您的评论的回答(它本身就太庞大了):

即使我没有重现错误,我想我也知道您为什么会遇到这个错误。错误 8 是 NOT_FOUND_ERR 的代码。猜猜你保存了 childNodes.length 的值并从 0(零)迭代到这个值,这里发生的是每次添加 child 时更新 childNodes 数组或删除,然后在循环中的某个点 i 实际上大于 childNodes.length(但不大于保存的值)导致 childNodes[i] 返回 undefined。并且由于 undefined 不是引用节点的子节点,因此抛出 NOT_FOUND_ERR(代码 8)。为了避免这种情况,只需对代码进行微小更改,只需将 childNodes.length-1 的初始值迭代为 0(零),或者只需执行以下操作:

while(node.childNodes.length > 0) node.removeChild(node.childNodes[0])

关于javascript - 需要帮助避免 HIERARCHY_REQUEST_ERR : DOM Exception 3 error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6819930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com