如何让XHR将responseXML显示为HTML元素(没有innerHTML)

How do I get XHR to show responseXML as an HTML element (without innerHTML)

本文关键字:元素 HTML 没有 innerHTML 显示 XHR responseXML      更新时间:2023-09-26

与将Ajax Responsexml转换为HTML相关

我试图使用XHR获得一个带有几个选项的<select>元素,并将它们附加到<div>,但使用importNode()appendChild()时,我无法获得作为HTML元素呈现的响应。相反,显示的只是选项的文本

例如,下面是我的xml:

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

生成的页面只显示文本A,而不是select元素。为什么不呈现元素,有什么好方法可以正确导入它们(没有innerHTML)?

Fiddle: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);
}

您可以使用DOMParser,在这种情况下它非常有用。我更新了你的小提琴

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