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.也就意味着随后对文档对象模型的任何改动都不会影响集合的内容。其底层实现类似于一组元素的快照,而非不断对文档进行搜索的动态查询。

时间: 2024-10-06 22:40:20

querySelectorAll与childNodes的相关文章

querySelectorAll 与jquery.find 与htmlcollection 的区别

querySelector 和 querySelectorAll 规范定义 querySelector 和 querySelectorAll 方法是 W3C Selectors API Level 1规范中定义的.他们的作用是根据 CSS 选择器规范,便捷定位文档中指定元素. 目前几乎主流浏览器均支持了他们.包括 IE8(含) 以上版本. Firefox. Chrome.Safari.Opera. querySelector 和 querySelectorAll 在规范中定义了如下接口: mod

【前端】强大的javascript原生选择器querySelector 和 querySelectorAll

querySelector 和 querySelectorAll 在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 DOM 选择方法并不多,仅仅局限于通过 tag, name, id 等方式来查找,这显然是远远不够的,如果想要进行更为精确的选择不得不使用看起来非常繁琐的正则表达式,或者使用某个库.事实上,现在所有的浏览器厂商都提供了 querySelector 和 querySelectorAll 这两个方法的支持

HTML5中querySelector和querySelectorAll选择器的使用与区别

简介 HTML5向Web API新引入了document.querySelector以及document.querySelectorAll两个方法用来更方便地从DOM选取元素,功能类似于jQuery的选择器.这使得在编写原生JavaScript代码时方便了许多. 用法 两个方法使用差不多的语法,都是接收一个字符串参数,这个参数需要是合法的CSS选择语法. element = document.querySelector('selectors'); elementList = document.q

HTML5中querySelector()和querySelectorAll()

HTML5向Web API新引入了document.querySelector以及document.querySelectorAll两个方法用来更方便地从DOM选取元素,功能类似于jQuery的选择器.这使得在编写原生JavaScript代码时方便了许多. 1.用法 两个方法使用差不多的语法,都是接收一个字符串参数,这个参数需要是合法的CSS选择语法. element = document.querySelector('selectors'); elementList = document.qu

学习笔记(二):querySelectorAll 和 getElementsBy

一.document.getElementById()    根据Id获取元素节点 <div id="div1"> <p id="p1"> 我是第一个P</p> <p id="p2"> 我是第二个P</p> </div> window.onload = function () { var str = document.getElementById("p1"

[label][JavaSript]querySelectorAll 方法相比 getElementsBy 系列方法有什么区别?

 轉載出處: http://www.zhihu.com/question/24702250 querySelectorAll 相比下面这些方法有什么区别? getElementsByTagName getElementsByClassName getElementsByName 1. W3C 标准querySelectorAll 属于 W3C 中的 Selectors API 规范 [1].而 getElementsBy 系列则属于 W3C 的 DOM 规范 [2]. 2. 浏览器兼容query

querySelectorAll 方法相比 getElementsBy 系列方法有什么区别? ---转载自知乎

1. W3C 标准querySelectorAll 属于 W3C 中的 Selectors API 规范 [1].而 getElementsBy 系列则属于 W3C 的 DOM 规范 [2]. 2. 浏览器兼容querySelectorAll 已被 IE 8+.FF 3.5+.Safari 3.1+.Chrome 和 Opera 10+ 良好支持 .getElementsBy 系列,以最迟添加到规范中的 getElementsByClassName 为例,IE 9+.FF 3 +.Safari

原生DOM选择器querySelector和querySelectorAll

在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 DOM 选择方法并不多,仅仅局限于通过 tag, name, id 等方式来查找,这显然是远远不够的,如果想要进行更为精确的选择不得不使用看起来非常繁琐的正则表达式,或者使用某个库.事实上,现在所有的浏览器厂商都提供了 querySelector 和 querySelectorAll 这两个方法的支持,甚至就连微软也派出了 IE 8 作为支持这一特性的代表,quer

children childNodes 的区别

1,childNodes 属性,标准的,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本.可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点. 2,children 属性,非标准的,它返回指定元素的子元素集合.经测试,它只返回HTML节点,甚至不返 回文本 节点.且在所有浏览器下表现惊人的一致.和childNodes 一样,在Firefox下不支持()取集合元素.因此如果想获取指定元素的第一个HTML节点,可以使用c