最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to get a data from html element from ajax responseText without jquery - Stack Overflow

programmeradmin3浏览0评论

I'd like to get data from ajax response, but this code not working:

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

The console shows this error:

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

Any ideas what's causing this?

I'd like to get data from ajax response, but this code not working:

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

The console shows this error:

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

Any ideas what's causing this?

Share Improve this question edited Aug 31, 2016 at 16:00 Mike 3,9503 gold badges17 silver badges24 bronze badges asked Aug 31, 2016 at 15:29 Star089Star089 472 silver badges13 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 8

You can use DOMParser to convert html string to document fragment

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

alternatively, you can set the responseType to 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

Request object isn't a DOM element nor does it have the methods that the native DOM has.

Fix your code with:

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


            }
发布评论

评论列表(0)

  1. 暂无评论