javascript - Javascript - .append 方法有问题
问题描述
我对 .append 方法有疑问。我有一个 XML,我想在每个“语言环境”节点中添加一个节点。这是我的代码:
x = xmlDoc.getElementsByTagName("locale")
newElement = xmlDoc.createElement("version_whats_new");
x[0].append(newElement)
console.log(xmlDoc.getElementsByTagName("locale")[0])
x[1].append(newElement)
console.log(xmlDoc.getElementsByTagName("locale")[1])
x[2].append(newElement)
console.log(xmlDoc.getElementsByTagName("locale")[2])
x[3].append(newElement)
console.log(xmlDoc.getElementsByTagName("locale")[3])
(我知道我可以使用循环,但这只是为了更好地理解)
在这些行之后,“version_whats_new”节点出现在节点“locale”[3] 中,但不在其他节点中。
让我们想象一下我的代码变成:
x = xmlDoc.getElementsByTagName("locale")
newElement = xmlDoc.createElement("version_whats_new");
x[0].append(newElement)
console.log(xmlDoc.getElementsByTagName("locale")[0])
x[1].append(newElement)
console.log(xmlDoc.getElementsByTagName("locale")[1])
x[2].append(newElement)
“version_whats_new”节点将出现在节点“locale”[1] 中,但不在 [0] 中
我在几个小时内寻找解决方案但没有任何成功...... :(
谢谢
解决方案
一个元素不能同时存在于多个地方。因此,如果它已经是文档的一部分,并且您将其附加到其他地方,那么它必须从之前的任何地方删除。
您需要createElement
多次调用(或使用),以便每次都cloneNode
可以附加不同的元素。
推荐阅读
- image - 不支持内容类型“application/octet-stream”(颤振 dio)
- java - 如何在 HashSet 中调用特定对象的函数
- android - 使用 Cordova 版本 10.0.0 和节点 v16.4.2 的 Cordova 构建失败
- ios - iPhone应用程序可以修改iOS中的数据,这些数据指定手机屏幕上其他应用程序图标的位置(点)吗?
- java - Firebase 实时数据库(Android-Java)-“类未定义无参数构造函数”
- javascript - Docker TypeScript:更改文件时没有热加载
- flutter - 如何让 scrollController.listener 监听变化?
- wordpress - 如何在 WordPress 中更改网站徽标 URL
- wordpress - 在php中的组件之间共享数据的最佳方式是什么
- rust - 为什么我的价值观之一没有移动到我的异步块中?