gpt4 book ai didi

javascript - 如何使用 jQuery 克隆 XML 节点、更改其中的值并追加它而不更改所有节点?

转载 作者:行者123 更新时间:2023-12-03 05:47:23 24 4
gpt4 key购买 nike

我有一个 XML 文档,其中使用 xmldoc.find("main_node") 检索此特定节点:

<main_node>
<rule_node>
<rule_name>Default_rule</rule_name>
</rule_node>
</main_node>

我正在尝试克隆 <rule_node>节点,更改 <rule_name>其中的节点值并将其附加到 <main_node>之后的节点,但我总是更改所有 <rule_name>节点值。

我正在备货默认的<rule_node>变量名内的节点 rule_xml然后执行克隆和值更改,如下所示:

for (i=0; i < 3; i++) {
$(rule_xml).clone().appendTo(sld.find("main_node")).find("rule_name").text("Rule_no" + (i+1))
}

这会导致此 XML 不正确:

<main_node>
<rule_node>
<rule_name>Rule_no2</rule_name>
</rule_node>
<rule_node>
<rule_name>Rule_no2</rule_name>
</rule_node>
<rule_node>
<rule_name>Rule_no2</rule_name>
</rule_node>
<rule_node>
<rule_name>Rule_no2</rule_name>
</rule_node>
</main_node>

我尝试使用这样的children()函数,但它不起作用:

$(rule_xml).clone().children().find("rule_name").text("new_text_here")
.appendTo(sld.find("main_node"))

如何更改 <rule_name>仅克隆节点的节点文本?

最佳答案

从您给出的结果来看,您当前的代码似乎在每次迭代时都会更新每个rule_name 元素。然而,有点奇怪的是它们都编号为 2 - 我希望它们都编号为 3(最后一次迭代是 2,规则编号为 i +1)。我刚刚测试了您的代码,但无法重现该问题。

也许尝试一下这段代码,看看它是否适合您:

for (i=0; i < 3; i++) {
//Clone the node
var newNode = $(rule_xml).clone();
//Update that individual node
newNode.find("rule_name").text("Rule_no" + (i+1));
//Now append that node
newNode.appendTo(sld.find("main_node"))
}

关于javascript - 如何使用 jQuery 克隆 XML 节点、更改其中的值并追加它而不更改所有节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40289891/

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