2013-08-06 2 views
1

node.attributes возвращает NamedNodeMap .. , и он не выдаст всех имен атрибутов или значений, как в xml.HTML DOM. так или иначе, чтобы получить атрибуты dict?

Есть ли способ получить что-то вроде этого?

node.attributes.keys

node.attributes.values

node.attributes.items

любого вида?

теперь я использую это для моих выигранные use..But JS не выдают имена атрибутов, таких как класс, идентификатор, href.it дает номер вместо ..

listattr = function(node) { 
    var attrs = [[],[]]; 
    for (var attr in node.attributes) { 
     if (node.attributes[attr].nodeValue) { 
      console.log(attr); 
      console.log(node.attributes[attr].nodeValue); 
      attrs[0].push(attr); 
      attrs[1].push(node.attributes[attr].nodeValue); 
     } 
    } 
    return attrs; 
} 

ответ

2

Но выиграл JS» t выдавать имена атрибутов, такие как класс

Это массивный список Attribute nodes, который имеет значения и имена! Вы регистрируете индексы.

var attrs = node.attributes; 
for (var i=0; i<attrs.length; i++) 
    console.log(attrs[i].name, attrs[i].value); 
0

Bergi ответ «s в основном говорит все это, но вот полная функция (с помощью подчеркивания) для преобразования атрибутов HTML-элемента в Словаре:

_.reduce(myElement.attributes, function(memo, element){ 
    memo[element.name] = element.value; 
    return memo; 
}, {}); 
Смежные вопросы