Как получить список attributes ноды XML
for (var v in x.attributes) { if (!isNaN(v)) {s += _fTag(_c.tgt, " "+x.attributes[v].name)+_tf+"=""+_fTag(_c.att, x.attributes[v].value)+_tf+"""; } } Такой код работает только в хроме и ff |
name/value - это DOM Level 4 свойства. Используй nodeName/nodeValue - они из DOM3
И вобще ты неправильно итерируешься по атрибутам. Там помимо индексов и ключей атрибутов перечисляется куча мусора ввиде имен методов. Итерируйся как все адекватные люди: for (var i = 0; i < x.attributes.length; i++) {} |
Да спасибо. Но перед этим еще надо if (x.attributes){ поставить
Кстати <?xml version="1.0" encoding="UTF-8"?>как получить? |
Цитата:
Цитата:
|
если x.attributes undefined, то x.attributes.length выдаст ошибку в цикле
|
Цитата:
alert(document.createElement('x').attributes) alert(document.createElement('x').attributes.length) |
Я над этим сам думаю не один день:)
|
Цитата:
А я вот за 10 секунд написал тест и проверил. Учись ) |
Ок, всё дело в паразитной ноде "<#document>"
если написать x.firstChild, то парсер ее пропускает и x.attributes отрабатывает корректно. |
http://stackoverflow.com/questions/3...ith-javascript
А здесь показано как решить проблему кроссбраузерности. |
Часовой пояс GMT +3, время: 15:28. |