[英]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 nodes
的ELSE
部分。
知道可能是什么問題嗎? 我懷疑是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.