如何获得数据从html元素从ajax responseText没有jquery

How to get a data from html element from ajax responseText without jquery

本文关键字:responseText 没有 jquery ajax html 何获得 数据 元素      更新时间:2023-09-26

我想从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);
    }   
}

控制台显示这个错误:

Uncaught TypeError: Cannot read property 'getElementById' of undefined.

你知道这是什么原因吗?

您可以使用DOMParserhtml字符串转换为文档片段

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

也可以将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);
  }
}

plnkr http://plnkr.co/edit/lkpveDD31fYY1gmflK9W?p=preview

请求对象不是DOM元素,也没有原生DOM所具有的方法。

修改你的代码:

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

            }