早上好, 我正在通过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内容?
答案 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("...");