querySelectorAll()从另一个页面到html

时间:2013-12-14 12:38:29

标签: javascript html ajax selectors-api

早上好, 我正在通过AJAX获取另一页的HTML:

var xml = new XMLHttpRequest()
xml.onreadystatechange = function () {
    if (xml.readyState == 4) {
        // here I need to work with data
        // xml.responseText
    }
}
xml.open("GET", url, false);
xml.send(null)

如何将querySelectorAll()应用于其他页面的html内容?

2 个答案:

答案 0 :(得分:11)

您可以创建新文档并将responseText放入其中。然后你可以使用querySelectorAll()。这是您的onreadystatechange功能:

function () {
    if (xml.readyState == 4) {
        var container = document.implementation.createHTMLDocument().documentElement;
        container.innerHTML = xml.responseText;
        var nodeList = container.querySelectorAll('selector');
    }
}

答案 1 :(得分:2)

如果您的回复是有效的XML,则可以尝试xml.responseXml

如果情况并非如此,您可以考虑使用DocumentFragment

var doc = document.createDocumentFragment();
var div = document.createElement("div");
div.innerHTML = xml.responseText;
doc.appendChild(div);

var nodes = doc.querySelectorAll("...");