我使用創建數組:2種不同長度的數組?
var links = document.getElementsByTagName('a');
如果我做的:
console.log(links.length);
我得到:2
但是,如果我這樣做:
console.log(links);
我得到一個看起來像這樣的對象:
[a.elm-skip-link,a]
當我展開這個對象時,其中有33個鏈接對象。
爲什麼鏈接對象的長度會改變?如果它是一個數組,它不會保留創建時的大小嗎?
這裏是我正在使用的代碼:
var links = document.getElementsByTagName('a');
console.log('links:');
console.log(links);
console.log('length:');
console.log(links.length);
BTW:我想選擇不會有一個「id」或「類」屬性頁面上的特定鏈接,這樣我需要獲取所有鏈接,然後循環查找具有我要查找的「標題」屬性的鏈接。但是,當我試圖循環訪問這個「鏈接」對象時,循環只運行兩次,儘管頁面上有33個鏈接。
首先,這不是一個數組,它是[節點列表](https://developer.mozilla.org/en-US/docs/Web/API/NodeList) – WhiteHat
只是一個註釋:有一個*文檔。鏈接*集合即頁面中的所有鏈接。一個元素不一定是鏈接。此外,[* getElementsByTagName *](http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-A6C9094)會返回一個[* NodeList *](http:// www。 w3.org/TR/DOM-Level-3-Core/core.html#ID-536297177),而不是數組。 – RobG
由於HTMLCollection(我不知道)的行爲,此問題不是console.log同步或異步問題的重複。我知道console.log不是異步的,但我不知道HTMLCollection對象的特殊行爲。 –