Jquery парсинг XML
есть xml
<?xml version="1.0" encoding="UTF-8"?> <item> <description><a href="http://host/xml/index.html">121212</a></description> </item> код $(xml_one).find("item").each(function () { $(".div_pars").append('<div>' + $(this).find("description").text() + '</div>'); Подскажите пожалуйста как вытащить ссылку целиком ? <a href="http://host/xml/index.html">121212</a> а то парситься только текст 121212 |
$(this).find("description").html()
|
Цитата:
|
А как к примеру вытащить второй либо третий элемент ?
<item> <a href="http://host/xml/index.html">1</a> </item> <item> <a href="http://host/xml/index.html">2</a> </item> <item> <a href="http://host/xml/index.html">3</a> </item> |
$(this).find("item").eq(index).html() - где index, индекс требуемого элемента
|
А не могли бы подсказать почему в IE это код не работает ?
|
Какой код, эта строка - $(this).find("item").eq(index).html()? И в каком IE?
|
Цитата:
IE 8 например |
В IE8 такое выражение будет работать без проблем, а вот структура ваших данных для IE8 может быть "не перевариваемой", отсюда и проблемы.
Отладчик какой никакой но в нем есть, смотрите в нем причину. |
строки из xml файла, xml файл нормально открывается IE , без ошибок,
но результат не выдает а вот ошибки HTML1524: Недопустимое DOCTYPE. Самое краткое из допустимых DOCTYPE — "<!DOCTYPE html>". xml, строка 1 символ 1 SCRIPT5007: Не удалось получить свойство "replace" ссылки, значение которой не определено или является NULL jquery-1.7.js, строка 4 символ 286 |
.innerHTML.replace
может ? |
Нет, дело в том, что вы работаете с xml-объектом, а в нем нет такого свойства. IE8 "старичок", и в xml-объекте не найдет такого, ибо свойства innerHTML в нем нет.
Если нужно получить html-содержимое элемента item, а это будет элемента А, тогда обращайтесь к нему и получайте его свойство xml: alert(xmlDoc.find('a').eq(1).get(0).xml) получит код второго элемент А документа xmlDoc. Например здесь можно узнать о свойствах xml. |
Цитата:
$(document).ready(function () { $.ajax({ type: "GET", url: "myxml.xml", dataType: "xml", success: xm }); }); function xm(xml) { alert($(xml).find('item').eq(1).get(0).xml); } получаю -- undefined а в IE даже вызов Алерта не происходит, мне просто бы с Jquery нужно ) а за ссылочку спасибо, если с помощью Jquery для IE не реально ... то |
Ну почему не реально, jQuery в данном случае как чернорабичий, дабы достучаться до элемента, а заем get(0) - возвратили DOM, и работаем с ним. Выполните это:
$(function() { var xmldoc = '<?xml version="1.0"?><list_of_items><item><a>1</a></item><item><a>2</a></item><item><a>3</a></item></list_of_items>', xmldoc = $($.parseXML(xmldoc)); alert(xmldoc.find('a').eq(1).get(0).xml) }); Здесь из строки валидного xml jQuery получает его, и работает с ним. Если у вас не получается, значит есть ошибки. |
Часовой пояс GMT +3, время: 21:08. |