我使用document.getElementsByTagName
獲取頁面中的所有圖像並將該數組存儲在名爲imgs
的變量中。然後,每次我使用document.createElement
和document.appendChild
創建一個新的圖像標籤並將其附加到文檔中時,變量imgs
的內容會動態更改,這意味着它將包含新添加的圖像標籤。根據我的理解,我已經將內容保存在變量imgs
之前,所以它應該始終保持不變。例如。如果我將imgs
的長度保存在另一個名爲imgsLength
的變量中,即使我將另一個img標籤動態添加到文檔,它也不會更改。所以我對imgs
和imgsLength
之間的這種不一致感到有點困惑。document.getElementsByTagName()將動態更改
1
A
回答
5
你誤解了對象。
getElementsByTagName()
返回一個NodeList對象,其中包含匹配元素的實時視圖。
此對象是mutable;它會響應DOM突變而改變。
var img = getElementsByTagName()
創建一個引用同一個對象的變量。它不會複製任何東西。
imgs.length
返回表示當前NodeList的長度的不可變數字。
var imgLength = imgs.length
創建一個引用這個不可變數字的變量。
當NodeList發生變化時,imgs.length
會引用不同的數字;這不會影響引用其先前值的變量。
+0
謝謝你。現在很清楚! – chaonextdoor
相關問題
- 1. 將靜態URL更改爲動態 - NodeJS
- 2. 動態更改
- 3. 動態更改
- 4. 動態更改
- 5. 動態更改CF7狀態
- 6. 動態列更改
- 7. 動態更改DIv
- 8. 動態更改CSS
- 9. 更改CSS動態
- 10. 動態更改UIPopoverController
- 11. 動態更改SharedPreferences
- 12. 動態更改preferredContentSize?
- 13. 動態更改javascript
- 14. 動態更改jquery
- 15. 動態更改從
- 16. 動態更改JComboBox
- 17. 動態更改HTML
- 18. 動態更改ProxyCreationEnabled
- 19. 動態更改app_themes
- 20. 動態更改android:configChanges
- 21. 將查詢更改爲動態sql
- 22. 動態更改jquery動畫
- 23. 動態更改撥動開關狀態
- 24. 動態更改OpenEars間距(動態)
- 25. 將「靜態」滑塊更改爲動態,容易更改的滑塊
- 26. 用最少的更改將靜態數組更改爲動態數組?
- 27. 分解document.getElementsByTagName(「img」);
- 28. document.getElementsByTagName(「*」)或document.all
- 29. document.getElementsByTagName not working
- 30. 調用document.GetElementsByTagName(「頭」)
無論何時您保存某個數組的長度(nodeList或其他類型的集合),實際上您只能從長度屬性和值類型中複製返回值,因爲已知數據是不可變的。 – Givi