推荐大量使用parentNode.children!!!!!!!!!!!!!!

    1,parentNode.childNodes(标准)**

    parentNode.childNodes 返回包含指定节点的集合,该集合为即使更新的集合。
    注意:这个集合里面包含了有的子节点,包括元素节点,文本节点等。

    如果只想要获取集合里面的元素节点,则需要专门处理,所以我们一般不提倡使用childNodes。**

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title></title>
    6. </head>
    7. <body>
    8. <ol>
    9. <li>我是li1</li>
    10. <li>我是li2</li>
    11. <li>我是li3</li>
    12. <li>我是li4</li>
    13. <li>我是li5</li>
    14. </ol>
    15. </body>
    16. <script>
    17. var ol=document.querySelector("ol");
    18. var lis=ol.childNodes;
    19. console.log(lis.length);//长度为11,因为把文本节点(换行)也选取出来了。
    20. </script>
    21. </html>


    2,parentNode.children(非标准)——>推荐使用

    parentNode.children是一个可读属性,返回所有的子元素节点,它只返回元素节点!!!!
    虽然children是一个非标准的,但是得到了各个浏览器的支持,一次我们可以放心使用。

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title></title>
    6. </head>
    7. <body>
    8. <ol>
    9. <li>我是li1</li>
    10. <li>我是li2</li>
    11. <li>我是li3</li>
    12. <li>我是li4</li>
    13. <li>我是li5</li>
    14. </ol>
    15. </body>
    16. <script>
    17. var ol=document.querySelector("ol");
    18. var lis=ol.children;
    19. console.log(lis.length);//长度为5,只是把元素节点选取出来
    20. </script>
    21. </html>


    firstChild返回第一个子节点,找不到则返回null。同样,也是包含所有的节点。

    4,parentNode.lastChild
    lastChild返回最后一个子节点,找不到则返回null。同样,也是包含所有的节点。**

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title></title>
    6. </head>
    7. <body>
    8. <ol>
    9. <li>我是li1</li>
    10. <li>我是li2</li>
    11. <li>我是li3</li>
    12. <li>我是li4</li>
    13. <li>我是li5</li>
    14. </ol>
    15. </body>
    16. <script>
    17. var ol=document.querySelector("ol");
    18. var first=ol.firstChild;
    19. console.log(first);//获取的是第一个节点,是文本节点(换行)。
    20. var last=ol.lastChild;
    21. console.log(last);//获取的是最后一个节点,也是文本节点(换行)。
    22. </script>
    23. </html>

    5,parentNode.firstElementChild
    firstElementChild 返回第一个子元素节点,找不到则返回null,注意:是子元素节点!!!

    6,parentNode.lastElementNode
    firstElementChild 返回第最后一个子元素节点,找不到则返回null,注意:是子元素节点!!!

    注意:这两个方法有兼容性问题,IE9以上才支持。

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title></title>
    6. </head>
    7. <body>
    8. <ol>
    9. <li>我是li1</li>
    10. <li>我是li2</li>
    11. <li>我是li3</li>
    12. <li>我是li4</li>
    13. <li>我是li5</li>
    14. </ol>
    15. </body>
    16. <script>
    17. var ol=document.querySelector("ol");
    18. var first=ol.firstElementChild;
    19. console.log(first);//获取的是第一个元素节点,li1。
    20. var last=ol.lastElementChild;
    21. console.log(last);//获取的是最后一个元素节点,li5。
    22. </script>
    23. </html>

    在实际开发中,可以这样写,既不会出现兼容性的问题,
    又能获取第一个元素节点或者最后一个元素节点。

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title></title>
    6. </head>
    7. <body>
    8. <ol>
    9. <li>我是li1</li>
    10. <li>我是li2</li>
    11. <li>我是li3</li>
    12. <li>我是li4</li>
    13. <li>我是li5</li>
    14. </ol>
    15. </body>
    16. <script>
    17. var ol=document.querySelector("ol");
    18. var first=ol.children[0];
    19. console.log(first);//获取的是第一个元素节点,li1。
    20. var last=ol.children[ol.children.length-1];
    21. console.log(last);//数组长度减1,就是最后一个元素的索引号。
    22. </script>
    23. </html>