一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

詳解JavaScript DOM中的Node節(jié)點

 jicemoon 2015-08-20

在DOM(文檔對象模型)中,HTML文檔的層次結(jié)構(gòu)被表示為樹形結(jié)構(gòu),HTML文檔的樹形表示主要包含表示元素或標記的節(jié)點和標識文本串的節(jié)點構(gòu)成。在JavaScript DOM中,Node常常被翻譯成節(jié)點,下面我們通過實例,來了解一下Node的屬性及方法。

51CTO推薦閱讀:深入解讀JavaScript中BOM和DOM

Node的屬性介紹:

  1. nodeType:顯示節(jié)點的類型  
  2. nodeName:顯示節(jié)點的名稱  
  3. nodeValue:顯示節(jié)點的值  
  4. attributes:獲取一個屬性節(jié)點  
  5. firstChild:表示某一節(jié)點的第一個節(jié)點  
  6. lastChild:表示某一節(jié)點的最后一個子節(jié)點  
  7. childNodes:表示所在節(jié)點的所有子節(jié)點  
  8. parentNode:表示所在節(jié)點的父節(jié)點  
  9. nextSibling:緊挨著當前節(jié)點的下一個節(jié)點  
  10. previousSibling:緊挨著當前節(jié)點的上一個節(jié)點 

Node有各種各樣的節(jié)點,我們先花一些時間認識他們,同時一并了解nodeType,nodeName和nodeValue屬性:

名稱:元素節(jié)點

◆nodeType:ELEMENT_NODE

◆nodeType值:1

◆nodeName:元素標記名

◆nodeValue:null

  1. <body> 
  2. <div id = "t" ><span></span></div> 
  3. </body> 
  4. <script> 
  5. var d = document.getElementById("t");  
  6. document.write(d.nodeType);  
  7. document.write(d.nodeName);  
  8. document.write(d.nodeValue);  
  9. //顯示 1 DIV null  
  10. </script> 

名稱:屬性節(jié)點

◆nodeType:ATTRIBUTE_NODE

◆nodeType值:2

◆nodeName:屬性名

◆nodeValue:屬性值

  1. <body> 
  2. <div id = "t" name="aaa"><span></span></div> 
  3. </body> 
  4. <script> 
  5. var d = document.getElementById("t").getAttributeNode("name");  
  6. document.write(d.nodeType);  
  7. document.write(d.nodeName);  
  8. document.write(d.nodeValue);  
  9. //顯示 2 name aaa  
  10. </script> 

名稱:文本節(jié)點

◆nodeType:TEXT_NODE

◆nodeType值:3

◆nodeName:#text

◆nodeValue:文本內(nèi)容

  1. <body> 
  2. <div id = "t">bbb</div> 
  3. </body> 
  4. <script> 
  5. var d = document.getElementById("t").firstChild;  
  6. document.write(d.nodeType);  
  7. document.write(d.nodeName);  
  8. document.write(d.nodeValue);  
  9. //顯示 3 #text bbb  
  10. </script> 

名稱:CDATA文本節(jié)點(XML中傳遞文本的格式)

◆nodeType:CDATA_SECTION_NODE

◆nodeType值:4

◆nodeName:#cdata-section

◆nodeValue:CDATA文本內(nèi)容

attributes屬性,直接獲取一個屬性節(jié)點,注意這里要使用[],保持IE和FF的兼容性。

  1. <body name="ddd"> 
  2. <div id = "t" name = "aaa"><span>aaa</span><span>bbb</span><span>ccc</span></div> 
  3. </body> 
  4. <script> 
  5. var d = document.getElementById("t").attributes["name"];  
  6. document.write(d.name);  
  7. document.write(d.value);  
  8. //顯示 name aaa  
  9. </script> 

firstChild和lastChild屬性,表示某一節(jié)點的第一個和最后一個子節(jié)點:

  1. <body> 
  2. <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div> 
  3. </body> 
  4. <script> 
  5. var d = document.getElementById("t");  
  6. document.write(d.firstChild.innerHTML);  
  7. document.write(d.lastChild.innerHTML);  
  8. //顯示 aaa ccc  
  9. </script> 

childNodes和parentNode屬性,表示所在節(jié)點的所有子節(jié)點和所在節(jié)點的父節(jié)點,這里的childNodes注意是一個數(shù)組:

  1. <body name="ddd"> 
  2. <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div> 
  3. </body> 
  4. <script> 
  5. var d = document.getElementById("t");  
  6. document.write(d.childNodes[1].innerHTML);  
  7. document.write(d.parentNode.getAttribute("name"));  
  8. //顯示 bbb ddd  
  9. </script> 

nextSibling和previousSibling屬性,分別表示在parentNode的childNodes[]數(shù)組中,緊挨著當前節(jié)點的上一個和下一個節(jié)點:

  1. <body name="ddd"> 
  2. <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div> 
  3. </body> 
  4. <script> 
  5. var d = document.getElementById("t").childNodes[1];  
  6. document.write(d.nextSibling.innerHTML);  
  7. document.write(d.previousSibling.innerHTML);  
  8. //顯示 ccc aaa  
  9. </script> 

Node的方法介紹:

◆hasChildNodes():判定一個節(jié)點是否有子節(jié)點

◆removeChild():去除一個節(jié)點

◆appendChild():添加一個節(jié)點

◆replaceChild():替換一個節(jié)點

◆insertBefore():指定節(jié)點位置插入一個節(jié)點

◆cloneNode():復(fù)制一個節(jié)點

◆normalize():(不知)

◆hasChildNodes()方法:判定一個節(jié)點是否有子節(jié)點,有返回true,沒有返回false

  1. <body name="ddd"> 
  2. <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div> 
  3. <div id = "m"></div> 
  4. </body> 
  5. <script> 
  6. alert(document.getElementById("t").hasChildNodes());  
  7. alert(document.getElementById("m").hasChildNodes());  
  8. // 第一個true,第二個false  
  9. </script> 

removeChild()方法:去除一個節(jié)點:

  1. <body name="ddd"> 
  2. <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div> 
  3. </body> 
  4. <script> 
  5. var d = document.getElementById("t").firstChild;  
  6. document.getElementById("t").removeChild(d);  
  7. // <span>aaa</span>被去除  
  8. </script> 

appendChild()方法:添加一個節(jié)點,如果文檔樹中已經(jīng)存在該節(jié)點,則將它刪除,然后在新位置插入。

  1. <body name="ddd"> 
  2. <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div> 
  3. </body> 
  4. <script> 
  5. var d = document.getElementById("t").firstChild;  
  6. document.getElementById("t").appendChild(d);  
  7. // <span>aaa</span>成了最后一個節(jié)點  
  8. </script> 

replaceChild()方法:從文檔樹中刪除(并返回)指定的子節(jié)點,用另一個節(jié)點來替換它。

  1. <body name="ddd"> 
  2. <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div> 
  3. </body> 
  4. <script> 
  5. var newd = document.createElement("span");  
  6. newd.innerHTML = "eee";  
  7. var oldd = document.getElementById("t").lastChild;  
  8. document.getElementById("t").replaceChild(newd,oldd);  
  9. // 最后一項成了 eee  
  10. </script> 

insertBefore()方法:在指定節(jié)點的前面插入一個節(jié)點,如果已經(jīng)存在,則刪除原來的,然后在新位置插入。

  1. <body name="ddd"> 
  2. <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div> 
  3. </body> 
  4. <script> 
  5. var newd = document.createElement("span");  
  6. newd.innerHTML = "eee";  
  7. var where = document.getElementById("t").lastChild;  
  8. document.getElementById("t").insertBefore(newd,where);  
  9. // 在最后一項的前面多了一項 eee  
  10. </script> 

cloneNode()方法:復(fù)制一個節(jié)點,該方法有一個參數(shù),true表示同時復(fù)制所有的子節(jié)點,false表示近復(fù)制當前節(jié)點。

  1. <body name="ddd"> 
  2. <div id = "t"><span>aaa</span><span>bbb</span><span>ccc</span></div><div id = "m"></div> 
  3. </body> 
  4. <script> 
  5. var what = document.getElementById("t").cloneNode(false).innerHTML;  
  6. document.getElementById("m").innerHTML = what;  
  7. // 增加了一個aaabbbccc  
  8. </script> 

【編輯推薦】

  1. 減少瀏覽器重解析 JavaScript DOM操作優(yōu)化方案
  2. 詳解jQuery對象與DOM對象的相互轉(zhuǎn)換
  3. 深入解讀JavaScript中BOM和DOM
  4. IE中JavaScript DOM ready應(yīng)用技巧
【責任編輯:王曉東 TEL:(010)68476606】

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    久久精品国产亚洲av麻豆| 日本一级特黄大片国产| 正在播放国产又粗又长| 免费观看成人免费视频| 一区二区三区18禁看| 免费在线观看欧美喷水黄片| 中文字幕中文字幕在线十八区| 又色又爽又黄的三级视频| 国产又粗又猛又爽又黄| 成年女人下边潮喷毛片免费| 九九热精彩视频在线播放| 日韩欧美二区中文字幕| 在线观看国产午夜福利| 日韩高清一区二区三区四区| 亚洲精品有码中文字幕在线观看| 亚洲国产黄色精品在线观看| av在线免费观看一区二区三区 | 亚洲成人免费天堂诱惑| 欧美字幕一区二区三区| 欧美日韩免费观看视频| 亚洲中文字幕日韩在线| 日本人妻精品中文字幕不卡乱码| 日本妇女高清一区二区三区| 国产中文字幕久久黄色片| 亚洲综合一区二区三区在线| 欧美日韩一区二区午夜| 青青免费操手机在线视频| 偷拍洗澡一区二区三区| 青青操在线视频精品视频| 欧美午夜一级特黄大片| 99国产成人免费一区二区| 国产不卡免费高清视频| 中国一区二区三区人妻| 亚洲中文字幕免费人妻| a久久天堂国产毛片精品| 欧美日本亚欧在线观看| 免费观看日韩一级黄色大片| 中国日韩一级黄色大片| 黄片美女在线免费观看| 国产一区二区精品丝袜| 美女黄色三级深夜福利|