querySelectorAll与childNodes
Posted loveyunk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了querySelectorAll与childNodes相关的知识,希望对你有一定的参考价值。
NodeList 对象是一个节点的集合,是由 Node.childNodes 和 document.querySelectorAll 返回的.
html代码:
<ul id="parent"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> </ul>
js代码:
var parent = document.getElementById("parent"); var child_nodes = parent.childNodes; console.log(child_nodes.length); parent.appendChild(document.createElement("div")); console.log(child_nodes.length);
结果:
Node.childNodes 返回节点个数包括空格。
Node.childNodes是动态实时的,如果文档中的节点树发生变化,则已经存在的 NodeList 对象也可能会变化。
js代码:
var parent = document.getElementById("parent"); var child_nodes = document.querySelectorAll("li"); console.log(child_nodes.length); parent.appendChild(document.createElement("div")); console.log(child_nodes.length);
结果:
querySelectorAll 返回的节点个数不包括空格。
querySelectorAll 返回的是一个静态的NodeList.也就意味着随后对文档对象模型的任何改动都不会影响集合的内容。其底层实现类似于一组元素的快照,而非不断对文档进行搜索的动态查询。
以上是关于querySelectorAll与childNodes的主要内容,如果未能解决你的问题,请参考以下文章
深入理解javascript中的动态集合——NodeListHTMLCollection和NamedNodeMap
js 中childNodes与children的区别,firstChild与firstElementChild区别