成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解JavaScript DOM中的Node節點

開發 前端
在DOM(文檔對象模型)中,HTML文檔的層次結構被表示為樹形結構,HTML文檔的樹形表示主要包含表示元素或標記的節點和標識文本串的節點構成。文章將詳細的介紹JavaScript DOM中的Node節點。

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

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

Node的屬性介紹:

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

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

名稱:元素節點

◆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> 

名稱:屬性節點

◆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> 

名稱:文本節點

◆nodeType:TEXT_NODE

◆nodeType值:3

◆nodeName:#text

◆nodeValue:文本內容

  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文本節點(XML中傳遞文本的格式)

◆nodeType:CDATA_SECTION_NODE

◆nodeType值:4

◆nodeName:#cdata-section

◆nodeValue:CDATA文本內容

attributes屬性,直接獲取一個屬性節點,注意這里要使用[],保持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屬性,表示某一節點的***個和***一個子節點:

  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屬性,表示所在節點的所有子節點和所在節點的父節點,這里的childNodes注意是一個數組:

  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[]數組中,緊挨著當前節點的上一個和下一個節點:

  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> 

#p#

Node的方法介紹:

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

◆removeChild():去除一個節點

◆appendChild():添加一個節點

◆replaceChild():替換一個節點

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

◆cloneNode():復制一個節點

◆normalize():(不知)

◆hasChildNodes()方法:判定一個節點是否有子節點,有返回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()方法:去除一個節點:

  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()方法:添加一個節點,如果文檔樹中已經存在該節點,則將它刪除,然后在新位置插入。

  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>成了***一個節點  
  8. </script> 

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

  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()方法:在指定節點的前面插入一個節點,如果已經存在,則刪除原來的,然后在新位置插入。

  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()方法:復制一個節點,該方法有一個參數,true表示同時復制所有的子節點,false表示近復制當前節點。

  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操作優化方案
  2. 詳解jQuery對象與DOM對象的相互轉換
  3. 深入解讀JavaScript中BOM和DOM
  4. IE中JavaScript DOM ready應用技巧
責任編輯:王曉東 來源: CSDN
相關推薦

2010-09-13 16:46:29

JavaScriptHTML DOM節點

2010-09-10 16:21:58

JavaScript

2013-05-08 10:36:07

JavaScriptJS詳解JavaScrip

2023-02-23 19:32:03

DOMJavascript開發

2017-03-20 14:45:42

JavaScript詳解

2010-08-17 15:04:37

JavaScriptDOM ready

2010-09-08 16:50:11

JavaScriptDOM操作

2010-06-07 16:55:00

JavaScript

2016-04-06 11:29:58

JavaScriptDOM操作

2020-10-19 11:49:32

NodeJavaScript

2020-04-15 15:48:03

Node.jsstream前端

2009-09-21 16:59:29

Array擴展

2016-10-11 20:33:17

JavaScriptThisWeb

2021-09-09 10:26:26

Javascript 文檔對象前端

2009-06-18 12:21:07

javascriptdom

2017-07-19 14:26:01

前端JavaScriptDOM

2010-09-28 14:12:50

Javascript

2010-09-08 17:26:46

JavaScript

2023-06-16 07:48:51

DOM對象JS

2016-12-27 10:19:42

JavaScriptindexOf
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品日韩一区二区 | h在线看| 澳门永久av免费网站 | 中国av在线免费观看 | 美女视频网站久久 | 亚洲精品一区二区三区在线 | 欧美日韩国产免费 | 日韩国产专区 | 91麻豆精品国产91久久久久久 | www.成人久久 | 午夜寂寞网站 | 九九热国产精品视频 | 中文字幕一区二区三区乱码在线 | 成人不卡 | 草樱av | 99久久精品国产一区二区三区 | 国产精品久久国产精品 | 久久免费精品视频 | 日韩成人在线播放 | 美国av毛片| 国产综合久久久久久鬼色 | 成人性生交大片免费看中文带字幕 | 中文一区二区 | 久久久久久成人 | 国产精品久久久99 | 成人网av| 国产精品国产精品 | 午夜手机在线视频 | 国产精品3区 | 人人叉 | 九九亚洲精品 | 日本激情视频在线播放 | 91青娱乐在线 | 99久久精品国产麻豆演员表 | 99视频在线免费观看 | 自拍 亚洲 欧美 老师 丝袜 | 99精品视频在线 | 欧美激情精品久久久久久变态 | 亚洲欧美日韩精品久久亚洲区 | 国产精华一区 | 日韩精品久久 |