0

를 사용하여 JS에서 변수의 값을 변경할 수 없습니다 .내가 크롬 확장 프로그램의 맨 처음에이 라인을 parseFromString

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

오류가 없으며 아무 것도 표시되지 않습니다. 그것은 똑같은 것을 출력합니다.

누군가는 아마 이유를 알고 있습니까?

+0

NodeList와 비슷합니다. – SLaks

+0

XMLDocument입니다. 그것을 바꿀 수 없습니까? :/ – vox

+0

나는 의심하지 않습니다. 배열에 복사하십시오. – SLaks

답변

0

동적 노드 목록을 다루고 있습니다. 문서가 변경되면 변경됩니다 (예 :

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

예상대로 작동합니다.

관련 문제