[英]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.