2012-04-15 2 views
0

У меня есть некоторый код 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); 

} 

Что мне не хватает? Благодарю.

+0

Вы регистрируете 'bodyobj.lemgth' .. не должно быть' bodyobj.length'? – Torious

+0

И используется браузер Firefox 11.0. – sotn

+0

Ужасно, ваше право неправильно написано. Я знаю, что я делаю неправильно. Я установил текст кнопки bodyobj вместо bodyobj [0] .innerHTML. Одна вещь, которая меня отбросила, - это вкладка Firebug watch. Он показывает переменную bodyobj после строки var bodyobj = xmlDoc.getElementsByTagName ("body"); выполняется как «undefined» вместо «HTMLCollection». Кто-нибудь знает, почему это? – sotn

ответ

0

Я знаю, что я делал неправильно. Я установил текст кнопки bodyobj вместо bodyobj [0] .innerHTML.

Смежные вопросы