Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.03.2014, 13:46
Аспирант
Отправить личное сообщение для andypop Посмотреть профиль Найти все сообщения от andypop
 
Регистрация: 15.02.2014
Сообщений: 32

Как получить список 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
Ответить с цитированием
  #2 (permalink)  
Старый 01.03.2014, 15:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

name/value - это DOM Level 4 свойства. Используй nodeName/nodeValue - они из DOM3

И вобще ты неправильно итерируешься по атрибутам. Там помимо индексов и ключей атрибутов перечисляется куча мусора ввиде имен методов.
Итерируйся как все адекватные люди:

for (var i = 0; i < x.attributes.length; i++) {}
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 01.03.2014, 15:53
Аспирант
Отправить личное сообщение для andypop Посмотреть профиль Найти все сообщения от andypop
 
Регистрация: 15.02.2014
Сообщений: 32

Да спасибо. Но перед этим еще надо if (x.attributes){ поставить
Кстати
<?xml version="1.0" encoding="UTF-8"?>
как получить?
Ответить с цитированием
  #4 (permalink)  
Старый 01.03.2014, 16:15
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от andypop
Но перед этим еще надо if (x.attributes){ поставить
Нафига?
Сообщение от andypop
как получить?
Нафига?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 02.03.2014, 00:23
Аспирант
Отправить личное сообщение для andypop Посмотреть профиль Найти все сообщения от andypop
 
Регистрация: 15.02.2014
Сообщений: 32

если x.attributes undefined, то x.attributes.length выдаст ошибку в цикле
Ответить с цитированием
  #6 (permalink)  
Старый 02.03.2014, 02:21
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от andypop
если x.attributes undefined
С чего бы им быть undefined?
alert(document.createElement('x').attributes)

alert(document.createElement('x').attributes.length)
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 02.03.2014, 08:53
Аспирант
Отправить личное сообщение для andypop Посмотреть профиль Найти все сообщения от andypop
 
Регистрация: 15.02.2014
Сообщений: 32

Я над этим сам думаю не один день
Ответить с цитированием
  #8 (permalink)  
Старый 02.03.2014, 08:56
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от andypop
Я над этим сам думаю не один день

А я вот за 10 секунд написал тест и проверил. Учись )
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 02.03.2014, 09:50
Аспирант
Отправить личное сообщение для andypop Посмотреть профиль Найти все сообщения от andypop
 
Регистрация: 15.02.2014
Сообщений: 32

Ок, всё дело в паразитной ноде "<#document>"
если написать x.firstChild, то парсер ее пропускает и x.attributes отрабатывает корректно.
Ответить с цитированием
  #10 (permalink)  
Старый 02.03.2014, 10:27
Аспирант
Отправить личное сообщение для andypop Посмотреть профиль Найти все сообщения от andypop
 
Регистрация: 15.02.2014
Сообщений: 32

http://stackoverflow.com/questions/3...ith-javascript
А здесь показано как решить проблему кроссбраузерности.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ext.form.ComboBox, как принудительно обнулить выпадающий список? martinelli ExtJS 4 10.07.2012 12:23
Как получить список пользовательских функций объекта window? Маэстро Events/DOM/Window 13 03.07.2010 13:20
Как получить все атрибуты ноды? Victor_85 Events/DOM/Window 1 12.04.2010 17:58
Как удалить из памяти весь XML документ? EisBerg Events/DOM/Window 1 03.04.2010 14:45
Как узнать какие ошибки произошли при парсинге xml файла faunder Events/DOM/Window 0 12.09.2008 14:17