JavaScript——節點常用屬性

akom7972 8年前發布 | 6K 次閱讀 JavaScript開發 JavaScript

0.前言

今天來說一下關于節點一些的常用方法。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>節點常用屬性</title>
    <style type="text/css">

    #box1{
        width: 400px; height: 200px;background-color: red;
    }
    #box2{
        width: 200px;height: 200px;background-color: green;
    }
    #box3{
        width: 200px;height: 200px;background-color: yellow;
    }
</style>

</head> <body> <div id="box1"><p>我是第一個P</p> <p>我是第二個P</p> <p>我是第三個P</p> <p>我是第四個P</p> <div> <p>我是第1個P</p> <p>我是第2個P</p> <p>我是第3個P</p> <p>我是第4個P</p> </div> </div> <div id="box2"></div> <div id="box3"></div> <input id="put" type="text" name="in" placeholder="sunck is a good man">

<script type="text/javascript">
</script>

</body> </html></code></pre>

效果:

捕獲.PNG

1.正文

在學習節點的常用屬性之前,我要了解一下節點的公有屬性: nodeNamenodeTypenodeValue

添加如下代碼:

//節點共有的屬性:nodeName、nodeType、nodeValue
        var jsDivBox1 = document.getElementById("box1");
        console.log(jsDivBox1);
        console.log(jsDivBox1.nodeName);
        console.log(jsDivBox1.nodeType);
        console.log(jsDivBox1.nodeValue);

運行結果:

捕獲.PNG

可以發現,nodeName打印出來的是DIV標簽,nodeType打印出來的是number類型的數值“1”,nodeValue打印出來的事null空值。原因看下表:

節點屬性nodeName、nodeType、nodeValue.png

看見不同的節點打印出來的公有屬性不同,利用這一點可以分辨出不同的節點

節點層次關系屬性

(1)獲取當前元素節點的所有的子節點——childNodes

var allChildsNodeArr = jsDivBox1.childNodes;
        console.log(allChildsNodeArr);
        for (var i = 0; i < allChildsNodeArr.length; i++) {
            if (allChildsNodeArr[i].nodeType == 1) {
                console.log(allChildsNodeArr[i]);
            }
        }

運行結果:

捕獲.PNG

可見利用nodeType只打印出div標簽的元素節點。

(2)獲取當前元素節點的第一個子節點——firstChild

var firstNode = jsDivBox1.firstChild;
console.log(firstNode);

運行結果:

捕獲.PNG

(3)獲取當前節點的最后一個子節點——lastChild

var lastNode = jsDivBox1.lastChild;
console.log(lastNode);

結果:

捕獲.PNG

為什么打印出的是 #text ?因為其中崔仔換行符,他會把換行符也給打印出來的,所以出現上述結果,放在同一行即可。

(4)獲取該節點的文檔的根節點,相當于document——ownerDocument

var rootNode = jsDivBox1.ownerDocument;
console.log(rootNode);

結果:

捕獲.PNG

可見吧整個文檔給打印出來了。

(5)獲取當前節點的父節點——parentNode

var fatherNode = jsDivBox1.parentNode;
console.log(fatherNode);

結果:

捕獲.PNG

(6)獲取當前節點的前一個同級節點——previousSibling

var p1 = p2.previousSibling;
console.log(p1);

捕獲.PNG

(7)獲取當前節點的后一個同級節點——nextSibling

var p3 = p2.nextSibling;
console.log(p3);

結果:

捕獲.PNG

(8)獲取當前節點的所有的屬性節點——attributes

var jsInput = document.getElementById("put");
var allAttributesArr = jsInput.attributes;
console.log(allAttributesArr);

結果:

捕獲.PNG

打印出來的是一個數組,記得是誰當前標簽的屬性。

2.總結

終于寫完了,好累,不想說話了!!!!

 

來自:http://www.jianshu.com/p/cb745573b357

 

 本文由用戶 akom7972 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!