Selectors API(querySelector()方法;querySelectorAll()方法) 元素遍历

 1 <!DOCTYPE html>
 2 <html>
 3 
 4     <head>
 5         <meta charset="utf-8" />
 6         <title>Selectors API(querySelector()方法;querySelectorAll()方法) 元素遍历</title>
 7     </head>
 8 
 9     <body>
10 
11     </body>
12     <script>
13         /*
14         querySelector()方法接收一个 CSS选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回 null。
15         querySelectorAll()方法接收的参数与 querySelector()方法一样,都是一个 CSS 选择符,但返回的是所有匹配的元素而不仅仅是一个元素。
16         这个方法返回的是一个 NodeList 的实例。具体来说,返回的值实际上是带有所有属性和方法的 NodeList,而其底层实现则类似于一组元素
17         的快照,而非不断对文档进行搜索的动态查询。这样实现可以避免使用 NodeList 对象通常会引起的大多数性能问题。
18         与 querySelector()类似,能够调用 querySelectorAll()方法的类型包括 Document、DocumentFragment 和 Element。
19          * */
20         //取得 body 元素
21         var body = document.querySelector("body");
22         //取得 ID 为"myDiv"的元素
23         var myDiv = document.querySelector("#myDiv");
24         //取得类为"selected"的第一个元素
25         var selected = document.querySelector(".selected");
26         //取得类为"button"的第一个图像元素
27         var img = document.body.querySelector("img.button");
28         /*
29          Selectors API Level 2 规范为 Element 类型新增了一个方法 matchesSelector()。这个方法接收
30         一个参数,即 CSS 选择符,如果调用元素与该选择符匹配,返回 true;否则,返回 false。看例子。
31         if (document.body.matchesSelector("body.page1")){
32          //true
33         } */
34         /*
35          元素遍历(详见javascript高级程序设计---DOM扩展)
36          对于元素间的空格,IE9 及之前版本不会返回文本节点,而其他所有浏览器都会返回文本节点。这样,
37 就导致了在使用 childNodes 和 firstChild 等属性时的行为不一致。为了弥补这一差异,而同时又保
38 持 DOM 规范不变,Element Traversal 规范(www.w3.org/TR/ElementTraversal/)新定义了一组属性。
39          * */
40          
41     </script>
42 
43 </html>

 

posted @ 2017-11-09 15:44  gaoxuerong  阅读(903)  评论(0编辑  收藏  举报