我想从ajax响应中获取数据,但此代码不起作用:
var request = new XMLHttpRequest();
request.open("GET", "http://localhost/test/test.php", true);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4) {
alert(request.responseText.document.getElementById('div1').innerHTML);
}
}
Run Code Online (Sandbox Code Playgroud)
控制台显示此错误:
Uncaught TypeError: Cannot read property 'getElementById' of undefined.
Run Code Online (Sandbox Code Playgroud)
是什么原因引起了这个?
您可以使用DOMParser将html字符串转换为文档片段
var request = new XMLHttpRequest();
request.open("GET", "http://localhost/test/test.php", true);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var parser = new DOMParser();
var doc = parser.parseFromString(request.responseText, "text/html");
var elem = doc.getElementById("div1");
alert(elem.innerHTML);
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以设置responseType为document
var request = new XMLHttpRequest();
request.open("GET", "file.html", true);
request.responseType = "document";
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var doc = request.response;
var elem = doc.getElementById("div1");
alert(elem.innerHTML);
}
}
Run Code Online (Sandbox Code Playgroud)
plnkr http://plnkr.co/edit/lkpveDD31fYY1gmflK9W?p=preview
| 归档时间: |
|
| 查看次数: |
2647 次 |
| 最近记录: |