为什么设置innerHTML不起作用?

时间:2014-06-19 12:43:27

标签: javascript xml

我的xml文档是这样的:

<Order>
  <size width="16.5" height="19.5">
    <width>16.5</width>
    <height>19.5</height>
  </size>
  <type>photo</type>
  </overlay>
  <Mats></Mats>
  <Openings></Openings>
  <Moulding></Moulding>
  <Glass></Glass>
</Order>

我正在尝试填写Mats标签的值。 这是我的javascript代码:

function common_get_order_xml()
{
  var parser = new DOMParser(); //create a new DOMParser
  var doc = parser.parseFromString(common_get_common_order_xml(), "application/xml"); //convert the string to xml
  console.log(doc); //outputs what is above
  //doc.getElementsByTagName('Mats').innerHTML = mattes_get_mattes_xml().replace("<Mats>", "").replace("</Mats>", ""); //add the mattes
  doc.getElementsByTagName('Mats').innerHTML = "TEST";
  doc.getElementsByTagName('Openings').innerHTML = mattes_get_openings_xml(); //Add the openings
  doc.getElementsByTagName('Moulding').innerHTML = moulding_get_moulding_xml(); //Add the moulding
  doc.getElementsByTagName('Glass').innerHTML = glazing_get_glass_xml(); //Add the moulding
  var serializer = new XMLSerializer(); //create a new XMLSerializer
  common_order_xml = serializer.serializeToString(doc); //convert the xml back to a string
  return doc;
}

但是当我输出doc时,Mats innerHTML没有设置为“TEST”

1 个答案:

答案 0 :(得分:1)

将JavaScript与XML结合使用时,您不应该阅读并设置innerHTML,Chrome和Firefox会尝试允许您这样做,但您可能会遇到一些奇怪的行为。

请尝试使用something.innerHTML

,而不是访问somthing.firstChild.data