Javascript 如何在没有jquery的情况下从ajax responseText从html元素获取数据

Javascript 如何在没有jquery的情况下从ajax responseText从html元素获取数据,javascript,ajax,Javascript,Ajax,我想从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.response

我想从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.

知道是什么原因吗?

请求对象不是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);
              }


            }

您可以使用
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);
  }
}
或者,您可以将
响应类型设置为
文档

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

那么,如何从ajax请求中从div获取html代码?是否要在html文档中显示响应文本?否,我要从ID为Table1的表中获取所有td标记的数据。我们需要查看您的
responseText
,否则我们无法为您提供正确的选择器。@Star089“不,我想从ID为table1的表中获取所有td标记的数据”
ID
html
文档中应该是唯一的。令人惊讶的是,您理解了他想要什么+1@guest271314你能告诉我,哪种方法更快吗?@Star089你可以在
devtools