2014-04-24 30 views
1

相關turning Ajax Responsexml into HTML

我試圖使用XHR得到<select>元素有幾個選項,並將其追加到<div>,但使用importNode()appendChild()我無法獲得呈現爲HTML元素的響應。相反,所有顯示的是選項的文本。

例如,這裏是我的xml:如何獲得XHR顯示的responseXML爲一個HTML元素(沒有的innerHTML)

<select> 
    <option value='1'>A</option> 
</select> 

結果頁面僅顯示文本A而不是select元素。爲什麼不呈現這些元素,以及什麼是正確導入它們的好方法(不使用innerHTML)?

小提琴: http://jsfiddle.net/9D9pD/2/

相關的JavaScript [我甚至嘗試adoptNode()]:

function handleResponse() { 
    var xmlResponse = xmlHttp.responseXML, 
     root = xmlResponse.documentElement; 
    console.log(xmlHttp.responseText); 
    var i = document.importNode(root, true); 
    var a = document.adoptNode(root); 
    document.getElementById("import").appendChild(i); 
    document.getElementById("adopt").appendChild(a); 
} 
+0

我學到了一些東西,感謝http://jsfiddle.net/9D9pD/4/ –

回答

1

您可以使用的DOMParser,這可能是在這種情況下非常有用的。我updated your fiddle

var parser = new DOMParser() 
var el = parser.parseFromString(xmlHttp.responseText, "text/html"); 
document.getElementById("import").appendChild(el.childNodes[0]); 
+0

如果碰上一些瀏覽器的問題,請參見[問題/ 9500318(http://stackoverflow.com/questions/9500318/trouble-trying-to-parse-an-html-string-with-domparser)。我發現這是有用的,因爲Opera無法解析爲text/html – SeDav

相關問題