Обход дерева html элементов на javascript
Если ajax возвращает просто текст, то проблемы нет, вывод делаю при помощи свойства data
xmlhttp.responseXML.getElementsByTagName('msg')[0].firstChild.data;
Но если возвращается html, то data пустая. Каким образом можно получить html текст, который был передан ajax?
попробуй xmlhttp.responseText
Причем, что странно. Попытался вывести все свойства объекта
xmlhttp.responseXML.getElementsByTagName('error')[0]
при помощи
{
var result = \"All Properties: \\n\";
var j=0;
for ( var i in obj )
{
result += i + \"=\" + obj + \" \\n \";
}
alert(result);
}
в опере все работает, и получаю список свойств, а в IE получаю ошибку в строке "for ( var i in obj )" -"Object does not support this action"
Цитата: vectoroc
попробуй xmlhttp.responseText
если возвращается невалидный XML то и responseXML работать по идее не будет. читай маны
Соственно именно поэтому лично я когда озадачился вопросом парсинга полученного XML, то захотел какого кроссбраузерного решения и затеялся вот с этим: Написал библиотеку для работы с XPath в JavaScript
Цитата: vectoroc
если возвращается невалидный XML то и responseXML работать по идее не будет. читай маны
А где у него невалидный XML? Добавляем корневой элемент и <?xml ... ?> и валидный. Другое дело, что это невалидный HTML код и вот уже его ставить в страницу напрямую не получиться.
Вставить напрямую код через DOM (тем же методом export) не получиться даже если генерить валидный HTML код. Ибо он должен быть не только валидным (корректным), но и действительным. Ну и заголовки тоже засылать нужно.