簡體   English   中英

jQuery-附加XML-IE8引發“對象不支持此屬性或方法”錯誤-FF

[英]jQuery - appending XML - IE8 throws “Object doesn't support this property or method” error - FF works

使用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節點。 就在遍歷該數組之前,我找到並刪除了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];

並且位於// Convert html into DOM nodes jquery模塊中的// Convert html into DOM nodesELSE部分。

知道可能是什么問題嗎? 我懷疑是IE8不喜歡XML,但不確定如何解決此問題。 希望對我做的更好的方法有任何反饋或想法。

謝謝!

我不確定這是否行得通,但是我所建議的只是創建新節點的另一種方法,因為看來錯誤是從提供的字符串創建節點。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM