为什么设置innerHTML不起作用

Why is setting the innerHTML not working?

本文关键字:不起作用 innerHTML 设置 为什么      更新时间:2023-09-26

我的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;
}

但是当我输出文档时,Mats innerHTML不会被设置为"TEST">

当使用JavaScript和XML时,您不应该读取和设置innerHTML,Chrome和Firefox试图允许您这样做,但您可能会得到一些奇怪的行为。

尝试使用somthing.firstChild.data而不是访问something.innerHTML