亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JS遇到一個問題,求路過的大神幫忙解答一下

JS遇到一個問題,求路過的大神幫忙解答一下

Howseeker 2017-03-16 21:44:01
為什么第二次 alert 出來的直接就是123?求解答。手動感激~~<html> <head> </head> <body> <ul?id="list"> <li></li> <li></li> <li></li> </ul> <script> var?list=document.getElementById('list'); var?arr_list=list.childNodes; alert(arr_list[arr_list.length-1].innerHTML); var?LI=document.createElement('li'); LI.innerHTML=123; list.appendChild(LI); alert(arr_list[arr_list.length-1].innerHTML);??//為什么這里不需要重置?arr_list?數組就能獲取到ul新添加的子元素? //在將一個新的?li?標簽寫入?ul?之后,不是要重新寫一次?arr_list=list.childNodes;?才能獲取到新添加進去的?li?嗎?? </script> </body> </html>
查看完整描述

3 回答

已采納
?
千秋此意

TA貢獻158條經驗 獲得超188個贊

因為getElementById方法(包括其他tagName,className,childNodes等)獲取的其實并不是一個真正的數組,雖然它也有數組的一些特性(比如length、index),但是只能算是類數組對象、偽數組,在控制臺中打印出來可以發現他們都是一個叫做NodeList的集合,NodeList集合和數組有一個重要的區別,在DOM規范中有說過NodeList(還有HTMLCollection)等集合都有一個live(動態、實時)特性,也就是說動態的NodeList集合所對應的DOM節點發生了任何改變都會實時的反映到對應的集合中,并不需要重新獲取。

查看完整回答
4 反對 回復 2017-03-16
?
西蘭花偉大炮

TA貢獻376條經驗 獲得超318個贊

js里面的數組的長度是動態更新的,即使是類數組也是一樣的

查看完整回答
2 反對 回復 2017-03-16
  • 3 回答
  • 2 關注
  • 1532 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號