繁体   English   中英

无法使用parseFromString更改JS中变量的值

[英]Can't change value of a variable in JS, using parseFromString

我在Chrome扩展程序的开头有以下一行:

var macroXML = parser.parseFromString(localStorage["myMacro"], "text/xml").getElementsByTagName("section");

进行一些更改后,我尝试更新macroXML,但是什么也没有发生。

alert(macroXML[1]);
macroXML[1] = 'RAWR';
alert(macroXML[1]);

没有错误,没有任何东西。 它输出完全相同的东西。

也许有人知道为什么吗?

您正在处理动态节点列表。 如果文档更改,它将更改,例如,从列表中删除第二个元素,您可以执行以下操作:

macroXML[1].parentNode.removeChild(macroXML[1]);

或者您将其替换为其他节点:

var newNode = macroXML[1].ownerDocument.createElement("section");
macroXML[1].parentNode.replaceChild(newNode, macroXML[1]);

但是您不能像使用数组那样使用该列表-因为您需要一个实际的数组。 您可以像这样复制列表:

var macroArray = Array.prototype.slice.apply(macroXML);
macroArray[1] = 'RAWR';

这将按预期工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM