У меня есть некоторый код ajax в документе html, который изменяет текст кнопки на текст, хранящийся в другом документе html в том же домене. Текст в теге тела второго HTML document.Like это:Ajax html Domparser
<body> Text</body>
Так что код делает AJAX запрос, анализирует ответ, чтобы создать xmldoc. Когда я пытаюсь использовать
getElementByTagName("body") or even getElementByTagName("html")
Я получаю emepty 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'? – Torious
И используется браузер Firefox 11.0. – sotn
Ужасно, ваше право неправильно написано. Я знаю, что я делаю неправильно. Я установил текст кнопки bodyobj вместо bodyobj [0] .innerHTML. Одна вещь, которая меня отбросила, - это вкладка Firebug watch. Он показывает переменную bodyobj после строки var bodyobj = xmlDoc.getElementsByTagName ("body"); выполняется как «undefined» вместо «HTMLCollection». Кто-нибудь знает, почему это? – sotn