Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t使用parseFromString更改JS中变量的值_Javascript_Google Chrome_Variables_Google Chrome Extension_Domparser - Fatal编程技术网

Javascript Can';t使用parseFromString更改JS中变量的值

Javascript Can';t使用parseFromString更改JS中变量的值,javascript,google-chrome,variables,google-chrome-extension,domparser,Javascript,Google Chrome,Variables,Google Chrome Extension,Domparser,我在Chrome扩展的最开始有一行: var macroXML = parser.parseFromString(localStorage["myMacro"], "text/xml").getElementsByTagName("section"); 在做了一些更改之后,我尝试更新macroXML,但什么也没发生 alert(macroXML[1]); macroXML[1] = 'RAWR'; alert(macroXML[1]); 没有错误,什么都没有。它输出完全相同的东西 有人可能知

我在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';

这将按预期工作。

这是一个XML文档。不能改变吗/我想不是。将其复制到数组中