jQuery - 附加XML - IE8抛出“对象不支持此属性或方法”错误 - FF工作

时间:2013-10-15 12:53:00

标签: javascript jquery xml internet-explorer-8

使用jQuery 1.9.1并创建类似于下面的XML。它是根据检查页面上的一系列复选框中的项目构建的。 XML结构是:

<MyXML>
   <Msg>This is a test message.</Msg>
   <MsgTime>2013-10-15 08:30:00.000</MsgTime>
   <Locations>
      <Location>Panel1</Location>
      <Location>Panel2</Location>
      <Location>Panel3</Location>
   </Locations>
</MyXML>

单击提交按钮时,所有选中的复选框都会被推送到一个数组中,然后我循环创建<Location> XML节点。在我循环遍历该数组之前,我发现&amp;删除XML中的任何现有Location

zXML.find("Location").remove();

for (var d=0; d < msgArr.length; d= d+ 1) {
    var tmpLocNode = "<Location>" + msgArr[d].locID + "</Location>";
    zXML.find("Locations").append( tmpLocNode );
    }

在FF中,上面的代码效果很好。

然而,在IE8中,for循环中的最后一行:

zXML.find("Locations").append( tmpLocNode );

抛出错误,“对象不支持此属性或方法”,并在jquery.js模块中的第6470行停止。那条线是:

tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[2];

并且位于jquery模块中ELSE的{​​{1}}部分。

知道问题可能是什么?我怀疑是IE8不喜欢XML,但不知道如何解决这个问题。非常感谢有关更好地做我正在做的事情的任何反馈或想法。

谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定这会有效,但我能建议的是另一种创建新节点的方法,因为看起来错误在于从提供的字符串创建节点。

for (var d = 0; d < msgArr.length; d = d+ 1) {
    var $tmpLocNode = $("<Location />", { text: msgArr[d].locID });
    zXML.find("Locations").append($tmpLocNode);
}