我只是试图遍历XHTML中的所有div元素http://www.w3.org/。我将HTML复制到w3c.html并运行以下代码。 但是由于我的代码失败,responseText不完整。
我最初使用了GET请求,我认为这是问题(认为这是一个问题),但它仍然没有解决问题。
function traverseHtml()
{
var xmlhttprequest=new XMLHttpRequest();
xmlhttprequest.open('POST','w3c.html',false);
xmlhttprequest.send(null);
var respText=xmlhttprequest.responseText;
alert('The ResponseText is '+respText);
/*var xml=(new DOMParser()).parseFromString(respText,'text/xml');
var result=xml.evaluate('//div',xml,null,XPathResult.ANY_TYPE,null);
var node=result.iterateNext();
alert(node);
while(node)
{
alert(node.childNodes[0].nodeName);
node=result.iterateNext()
}
*/
}
答案 0 :(得分:0)
您不能在发送请求后立即使用responseText属性。你需要创建一个在完成后调用的函数,如下所示:
var xmlhttprequest;
xmlhttprequest = new XMLHttpRequest();
xmlhttprequest.open('GET', 'w3c.html', true);
xmlhttprequest.send();
xmlhttprequest.onreadystatechange = function () {
// Check if request done and it didn't fail
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert('The ResponseText is '+xmlhttp.responseText);
}
}