【问题标题】:Ajax html DomparserAjax html Domparser
【发布时间】:2012-04-18 02:44:31
【问题描述】:

我在一个 html 文档中有一些 ajax 代码,可以将按钮的文本更改为存储在同一域中另一个 html 文档中的文本。文本在第二个 html 文档的 body 标签中。像这样:

<body> Text</body>

所以代码发出一个 ajax 请求,解析响应以创建一个 xmldoc。当我尝试使用

getElementByTagName("body") or even getElementByTagName("html") 

我得到一个空的 HTMLcollection。但是当我使用

queryselector("body") I can get to the text. The log to console prints undefined. 

这是完整的代码:

function gettxt()
 {
var xmlhttp;
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
else
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.open("GET", "http://localhost/ajax2.html", true);  
xmlhttp.onreadystatechange = function() 
{
  if (xmlhttp.readyState === 4) {  
    if (xmlhttp.status === 200) 
    { 
      allText = xmlhttp.responseText;   
    var parser = new DOMParser();
    var xmlDoc = parser.parseFromString(allText, "application/xml");            
    var bodyobj=xmlDoc.getElementsByTagName("body");
    console.log(bodyobj.lemgth);                        
      document.getElementById("secbtn").value=bodyobj;        
    }
  }
}

xmlhttp.send(null);

}

我错过了什么?谢谢。

【问题讨论】:

  • 你正在记录 bodyobj.lemgth.. 那不应该是 bodyobj.length 吗?
  • 并且使用的浏览器是Firefox 11.0。
  • Torious,你的权利拼写错误。我知道我做错了什么。我将按钮的文本设置为 bodyobj 而不是 bodyobj[0].innerHTML。让我失望的一件事是 Firebug 监视选项卡。它在 var bodyobj=xmlDoc.getElementsByTagName("body"); 行之后显示变量 bodyobj被执行为“未定义”而不是“HTMLCollection”。有谁知道这是为什么?

标签: html xml ajax


【解决方案1】:

我知道我做错了什么。我将按钮的文本设置为 bodyobj 而不是 bodyobj[0].innerHTML。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多