2014-01-21 184 views
0

我需要使用DocumentTraversal枚舉元素屬性。我只針對IE11。它適用於元素,但我無法使用屬性工作。它首先停止。使用DocumentTraversal枚舉屬性

<div id ="div1" class="dd" style="background: yellow" rrr="rrtis"> 

var a0 = document.getElementById('div1').attributes[0]; 
var ni = document.createNodeIterator(a0, 0xffff, null, false); 
var nn = ni.nextNode(); 

在這一點ン指向 'class' 屬性

var nn1 = ni.nextNode(); 

NN1指向文本節點 'DD'。

var nn2 = ni.nextNode(); 

nn2指向'空'。

所以不是 ID - >類 - >樣式 - > RRR 樹是 類 - > 'DD'

http://jsfiddle.net/Bfumh/1/

我指的這個文檔 - http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html

用treeWalker從一個屬性導航到另一個屬性也是很好的選擇。

回答

0

你必須使用迭代器嗎?看起來像這樣應該是這樣簡單:

var div = document.getElementById('div1'); 

    for (var idx = 0; idx < div.attributes.length; idx++) { 
     var atr = div.attributes[idx]; 

     // If you want to make sure the attribute has a value, 
     // include the following conditional. Otherwise just 
     // use the `name` property. 

     if (atr.specified) { 
      console.log(atr.name + ': ' + atr.value); 
     } 
    } 
+0

是的,我有。 DocumentTraveral接口爲我提供了保留格式的額外文本節點。這對於元素很好,但不適用於屬性。 – Dizzy