2011-09-15 57 views
3

我使用jQuery Ajax從服務器檢索XML文檔,然後將其轉換爲HTML並注入到瀏覽器DOM中。我使用dataType檢索它:'xml',所以它被封裝爲XML文檔而不是HTML。這使我可以在插入前執行我想要做的操作。如何將XML元素插入到瀏覽器中DOM

但是,我無法找到一個方法來插入XML操縱到DOM:

$('#myContainer').append(myXML) 

導致安全違規在IE和在Firefox中沒有任何影響,而

$('#myContainer').append(myXML[0].xml) 

適用於IE但不適用Firefox(xml屬性看起來不標準)

myXML.text()僅返回XML中的文本節點,而不是標記,而myXML.html()返回null。

我也嘗試將其作爲文本檢索,它允許我創建一個「標準」jQuery對象插入就好。不過,我會在下面的事情排序:

<div><input type='checkbox'><otherElement/></input></div> 

要修改的基礎上otherElement內容的input元素。如果我恢復了原始的XML文本,jQuery的它減少到

<div><input type='checkbox'><otherElement/></div> 

,這樣的otherElement的父元素是div而不是input,使輸入元素不可靠的操作。如果我將它檢索爲html,也會發生同樣的情況。

任何建議非常感謝。

回答

0

我想retrive爲HTML,操縱它,然後將其連接到DOM:使用「的dataType」

<script type="text/javascript"> 
$.ajax({"url":"/ajax.whatever", 
     "dataType":"html", 
     "success":function(data) { 
      var html = $(data); 
      // modify html as a jquery object 
      // ... 
      $("#myContainer").append(html); 
     } 
} ); 
</script> 
+0

謝謝。不幸的是,將其作爲html檢索與將其作爲文本檢索相同的問題 - 文檔的內容將更改爲輸入元素的子元素已重新有效。 –

2

的解決方案是加載它:「文本」,然後使用$ parseXML創建jQuery對象。這保留了標記,並且可以將結果對象中的節點插入到DOM中。

相關問題