2013-04-12 100 views
0

在發出XML請求併發送Ajax請求作爲響應之後,XML就已經被格式化爲HTML。我只想從XML中獲取一個節點並將其注入到DOM中。響應中還有其他純XML節點。 XML或多或少看起來像。通過Ajax將HTML節點從XML文檔注入到HTML文檔中

<xml> 
     <div id="foo"> 
      <div id='foo'>... 
       <img src="foo.jpg"/> 
      </div> 
     </div> 
     <node></node> 
     <node></node> 
     <node></node> 
     <node></node> 
    </xml> 

所以,如果我要搶在div節點,並注入到DOM中,我能做到這一點的東西,如

var e = this.responseXML.getElementById('foo'); 
    $('#container').html(e); 

的問題是,當HTML注入,圖像不要以任何方式下載。如果我使用responeTEXT,圖像將會下載,但我得到了所有我不想要的其他XML。

有沒有人知道注入時不下載圖像的主要原因?或者如何讓他們這樣做?

+0

嘗試'$('#container')。empty()。append(e);' – Musa

+0

這實際上是一回事嗎?另一種方式是實際附加HTML。不會改變HTML未被評估和被請求的圖像的原因。 – jefeman

+0

['.html()'](http://api.jquery.com/html/#html2)需要html字符串而不是節點。如果以上方法不起作用,請嘗試'$('#container')。empty()。append($(e).clone());' – Musa

回答

0

好吧,想出瞭解決這個問題的最佳方法。我無法通過jQuery獲得responseXML的功能。我能夠使用XUIjs,但是它以不同的方式處理對象,並需要對選擇器進行不同的包裝並從對象數組中拉出項目。我找到的最佳解決方案是使用responseText,它似乎被視爲HTML。

var e = this.responseText; 
    $('#container').html(e.find("#items")); 

這加載的東西很好,並導致圖像按要求得到請求。