JS基本入門篇(二十四)—DOM(上)

1.經常使用的節點範例,nodeType,attributes,childNodes。

1.元素節點 - 1
2.屬性節點 - 2
3.文本節點 - 3
4.解釋節點 - 8
5.文檔節點 - 9

檢察節點範例
    node.nodeType(返回的是数字)

屬性節點
    元素.attributes(獵取的是鳩合)
    元素.attributes[0]

經由過程元素.childNodes獵取子節點
    childNodes 獵取到的是一個鳩合
        鳩合中 包含了 元素的 一切子節點
            其中有 元素 子節點 ,解釋,文本節點...
            

舉例說明,以下是悉數代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #box{
            width: 100px;
            height: 100px;
            background: red;
        }

    </style>
</head>
<body>
    <div id="box" class="content">
        <div id="inner">inner</div>
        一句話
        <!--這裡是解釋-->
    </div>
    <script>
        var box=document.getElementById("box");
        console.log(box.nodeType);//1
//--------------------------------------------
        console.log(box.attributes);
        console.log(box.attributes[0]);//id="box"
        console.log(box.attributes[1]);//class="content"
        console.log(box.attributes[0].nodeType);//2
//--------------------------------------------
        console.log(box.childNodes);
        console.log(box.childNodes[0]);//#text 這裏指的是box所指的div和inner所指的div換行之間的內容,就是很多個空格,計算機認定為文本。
        console.log(box.childNodes[0].nodeType);// 3
        console.log(box.childNodes[3].nodeType);// 8
    </script>
</body>
</html>

2.nodeName

<body>
    <div id="box" class="content">
        <div id="inner">inner</div>
        <p>一句話</p>
        <!--這裡是解釋-->
    </div>
    <script>
        var box = document.getElementById("box");
        var p=document.getElementsByTagName("p")[0];
        console.log(box.nodeName);//DIV
        console.log(p.nodeName);//P
//----------------------------------------------------
        console.log(box.childNodes[0].nodeName);//#text
        console.log(box.childNodes[5].nodeName);//#comment
//----------------------------------------------------
        console.log(document.nodeName);//#document
    </script>
</body>

3.parentNode,children,childNodes

node.parentNode:找到node的父節點
children:獵取節點的一級的元素子節點,只獵取元素,返回的是HTMLCollection鳩合。
childNodes:獵取節點的一級子節點,能夠獵取到元素節點,文本節點,解釋節點等,返回的是Nodelist鳩合.

舉例說明,能夠把代碼粘貼,本身運轉看看:

<body>
<!--
    node.parentNode 父節點
    children 獵取節點的一級的元素子節點,返回的是鳩合
    childNodes 獵取節點的子節點,能夠獵取到元素節點,文本節點,解釋節點,返回的是鳩合
-->
<div id="wrap">
    <div id="content">
        <div id="inner"></div>
    </div>
    <p>p</p>
    一句話
</div>
<script>
    var content=document.getElementById("content");
    console.log(content.parentNode);
    console.log(content.parentNode.parentNode);
    console.log(content.parentNode.parentNode.parentNode);
    console.log(content.parentNode.parentNode.parentNode.parentNode);
//-----------------------------------------------------------------------
    console.log(content.childNodes);//NodeList(3) [text, div#inner, text]    
    console.log(content.children);//HTMLCollection [div#inner]
</script>
</body>

4.node.previousElementSibling和node.nextElementSibling

兄弟關聯

    node.previousElementSibling 上一個元素兄弟節點
    node.nextElementSibling 下一個元素兄弟節點

舉例說明,能夠把代碼粘貼,本身運轉看看:

<body>
<ul id="list">
    <li>1</li>
    <li id="item">2</li>
    <li>3</li>
    <li>4</li>
</ul>
<script>
    var list = document.getElementById("list");
    var item = document.getElementById("item");
    console.log(list.previousElementSibling);//null 由於是嵌套關聯,所以沒有上一個兄弟節點
    console.log(item.previousElementSibling);//<li>1</li>
    console.log(item.nextElementSibling);//<li>3</li>
    console.log(item.nextElementSibling.nextElementSibling);//<li>4</li>
</script>
</body>

5.node.firstElementChild和node.lastElementChild

嵌套關聯

    node.previousElementSibling 第一個子級
    node.nextElementSibling 末了一個子級

舉例說明,能夠把代碼粘貼,本身運轉看看:

<body>
<div id="wrap">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
</div>
<script>
    var wrap = document.getElementById("wrap");
    console.log( wrap.firstElementChild );//<div>1</div>
    console.log( wrap.lastElementChild );//<div>4</div>
</script>
</body>
    原文作者:梁志芳
    原文地址: https://segmentfault.com/a/1190000015277584
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞