NodeList何时生效,何时是静态的?

从MDN for NodeList:


在某些情况下,NodeList是一个实时集合,这意味着DOM中的更改会反映在集合中。例如,Node.childNodes是实时的:


 var parent = document.getElementById('parent');

 var child_nodes = parent.childNodes;

 console.log(child_nodes.length); // let's assume "2"

 parent.appendChild(document.createElement('div'));

 console.log(child_nodes.length); // should output "3"

在其他情况下,NodeList是静态集合,这意味着DOM中的任何后续更改都不会影响集合的内容。document.querySelectorAll返回一个静态NodeList。


所以....有点烦人!对于哪些方法返回实时列表以及哪些方法返回静态列表,是否有任何中心引用,而无需单独检查DOM API的所有各个部分?这里有什么规则吗?



白衣染霜花
浏览 466回答 2
2回答

猛跑小猪

我不知道是否有中心参考document.getElementsByTagName(),document.getElementsByTagNameNS并且document.getElementsByClassName()是唯一可用于返回“实时”节点列表的选项。看看这些方法,你可能会气馁,但不是。
打开App,查看更多内容
随时随地看视频慕课网APP