2011-07-30 45 views
8

我的一個變量做一個警報()給了我這樣的結果的Javascript,觀看「對象節點列表」

[object NodeList] 

我如何可以看到,所有的價值觀?

注意;我在Firefox上,不知道如何使用chromebug,所以它沒有安裝。

回答

6

您可以在NodeList以同樣的方式重複的值,你將一個數組:

for (var index = 0; index < nodeList.length; index++) { 
    alert(nodeList[index]); 
} 

下面是一些更深入的一個很好的信息資源:http://reference.sitepoint.com/javascript/NodeList

+0

,只是提醒我這個樣子[對象文本]和[對象元素] – Ryan

+1

@Ryan Try'alert(Object.keys(nodeList [i]))'; – Shaz

+0

它說:[object XMLDocument] – Ryan

5

更好的選擇是不使用alert,因爲那會顯示對象的toString()。利用FF和Chrome的console.log會給你一個很好的可擴展的對象,您可以點擊鑽了進去

如果你真的需要序列化,你可以使用outerHTML

// Firefox doesn't support outerHTML on nodes, so here's a method that does it 
// http://stackoverflow.com/questions/1700870/how-do-i-do-outerhtml-in-firefox 
function outerHTML(node){ 
    return node.outerHTML || new XMLSerializer().serializeToString(node); 
} 

for (var index = 0; index < nodeList.length; index++) { 
    alert(outerHTML(nodeList[i])); 
} 
+0

謝謝,我還沒有試過控制檯.log之前...會查找它。 乾杯! – Ryan

1

現在我鐵定使用以下命令:

瀏覽器,Firefox 3.5及更高版本,IE8 +

var elements = document.querySelectorAll('a'); 

for (var i = 0, element; (element = elements[i]); i++) { 
    console.log(element); 
} 

IE11 +,Firefox的24+,鉻30+(含實驗啓用)

let elements = document.querySelectorAll('a'); 

for (let i = 0, element; (element = elements[i]); i++) { 
    console.log(element); 
} 

「元素=元素[I]」 優選於 「elements.length」,因爲:

「節點列表通常爲具有過濾器節點迭代器實現。這意味着得到一個像長度一樣的屬性是O(n),並且通過重新檢查長度來重複遍歷該列表將是O(n^2)。「

與數組訪問不同,它就我所記得的O(1)

更多細節: