javascript學習筆記(十九) 節(jié)點的操作實現(xiàn)代碼
更新時間:2012年06月20日 20:28:53 作者:
javascript學習筆記之節(jié)點的操作實現(xiàn)代碼,包括節(jié)點的創(chuàng)建、添加、移除、替換、復制
本節(jié)要用到的html例子
<ul id="myList">
<li>項目一</li>
<li>項目二</li>
<li>項目三</li>
</ul>
1.創(chuàng)建元素節(jié)點
document.createElement() 方法 用于創(chuàng)建元素,接受一個參數(shù),即要創(chuàng)建元素的標簽名,返回創(chuàng)建的元素節(jié)點
var div = document.createElement("div"); //創(chuàng)建一個div元素
div.id = "myDiv"; //設(shè)置div的id
div.className = "box"; //設(shè)置div的class
創(chuàng)建元素后還要把元素添加到文檔樹中
2.添加元素節(jié)點
appendChild() 方法 用于向childNodes列表的末尾添加一個節(jié)點,返回要添加的元素節(jié)點
var ul = document.getElementById("myList"); //獲得ul
var li = document.createElement("li"); //創(chuàng)建li
li.innerHTML = "項目四"; //向li內(nèi)添加文本
ul.appendChild(li); //把li 添加到ul子節(jié)點的末尾
添加后:
<ul id="myList">
<li>項目一</li>
<li>項目二</li>
<li>項目三</li>
<li>項目四</li>
</ul>
appendChild() 方法還可以添加已經(jīng)存在的元素,會將元素從原來的位置移到新的位置
var ul = document.getElementById("myList"); //獲得ul
ul.appendChild(ul.firstChild); //把ul的第一個元素節(jié)點移到ul子節(jié)點的末尾
運行后(IE):
<ul id="myList">
<li>項目二</li>
<li>項目三</li>
<li>項目一</li>
</ul>
insertBefore() 方法 ,如果不是在末尾插入節(jié)點,而是想放在特定的位置上,用這個方法,該方法接受2個參數(shù),第一個是要插入的節(jié)點,第二個是參照節(jié)點,返回要添加的元素節(jié)點
var ul = document.getElementById("myList"); //獲得ul
var li = document.createElement("li"); //創(chuàng)建li
li.innerHTML= "項目四"; //向li內(nèi)添加文本
ul.insertBefore(li,ul.firstChild); //把li添加到ul的第一個子節(jié)點前
添加后:
<ul id="myList">
<li>項目四</li>
<li>項目一</li>
<li>項目二</li>
<li>項目三</li>
</ul>
var ul = document.getElementById("myList"); //獲得ul
var li = document.createElement("li"); //創(chuàng)建li
li.innerHTML= "項目四"; //向li內(nèi)添加文本
ul.insertBefore(li,ul.null); //把li添加到ul的子節(jié)點末尾
添加后:
<ul id="myList">
<li>項目一</li>
<li>項目二</li>
<li>項目三</li>
<li>項目四</li>
</ul>
var ul = document.getElementById("myList"); //獲得ul
var li = document.createElement("li"); //創(chuàng)建li
li.innerHTML= "項目四"; //向li內(nèi)添加文本
var lis = ul.getElementsByTagName("li") //獲取ul中所有l(wèi)i的集合
ul.insertBefore(li,lis[1]); //把li添加到ul中的第二個li節(jié)點前
添加后:
<ul id="myList">
<li>項目一</li>
<li>項目四</li>
<li>項目二</li>
<li>項目三</li>
</ul>
3.移除元素節(jié)點
removeChild() 方法 ,用于移除節(jié)點,接受一個參數(shù),即要移除的節(jié)點,返回被移除的節(jié)點,注意被移除的節(jié)點仍然在文檔中,不過文檔中已沒有其位置了
var ul = document.getElementById("myList"); //獲得ul
var fromFirstChild = ul.removeChild(ul.firstChild); //移除ul第一個子節(jié)點1 var ul = document.getElementById("myList"); //獲得ul
var lis = ul.getElementsByTagName("li") //獲取ul中所有l(wèi)i的集合
ul.removeChild(lis[0]); //移除第一個li,與上面不同,要考慮瀏覽器之間的差異
4.替換元素節(jié)點
replaceChild() 方法 ,用于替換節(jié)點,接受兩個參數(shù),第一參數(shù)是要插入的節(jié)點,第二個是要替換的節(jié)點,返回被替換的節(jié)點
var ul = document.getElementById("myList"); //獲得ul
var fromFirstChild = ul.replaceChild(ul.firstChild); //替換ul第一個子節(jié)點1 var ul = document.getElementById("myList"); //獲得ul;
var li = document.createElement("li"); //創(chuàng)建li
li.innerHTML= "項目四"; //向li內(nèi)添加文本
var lis = ul.getElementsByTagName("li") //獲取ul中所有l(wèi)i的集合
var returnNode = ul.replaceChild(li,lis[1]); //用創(chuàng)建的li替換原來的第二個li
5.復制節(jié)點
cloneNode() 方法,用于復制節(jié)點, 接受一個布爾值參數(shù), true 表示深復制(復制節(jié)點及其所有子節(jié)點), false 表示淺復制(復制節(jié)點本身,不復制子節(jié)點)
var ul = document.getElementById("myList"); //獲得ul
var deepList = ul.cloneNode(true); //深復制
var shallowList = ul.cloneNode(false); //淺復制
節(jié)點的操作要注意IE和其它瀏覽器的差異(第十八節(jié)中有講到)
復制代碼 代碼如下:
<ul id="myList">
<li>項目一</li>
<li>項目二</li>
<li>項目三</li>
</ul>
1.創(chuàng)建元素節(jié)點
document.createElement() 方法 用于創(chuàng)建元素,接受一個參數(shù),即要創(chuàng)建元素的標簽名,返回創(chuàng)建的元素節(jié)點
復制代碼 代碼如下:
var div = document.createElement("div"); //創(chuàng)建一個div元素
div.id = "myDiv"; //設(shè)置div的id
div.className = "box"; //設(shè)置div的class
創(chuàng)建元素后還要把元素添加到文檔樹中
2.添加元素節(jié)點
appendChild() 方法 用于向childNodes列表的末尾添加一個節(jié)點,返回要添加的元素節(jié)點
復制代碼 代碼如下:
var ul = document.getElementById("myList"); //獲得ul
var li = document.createElement("li"); //創(chuàng)建li
li.innerHTML = "項目四"; //向li內(nèi)添加文本
ul.appendChild(li); //把li 添加到ul子節(jié)點的末尾
添加后:
復制代碼 代碼如下:
<ul id="myList">
<li>項目一</li>
<li>項目二</li>
<li>項目三</li>
<li>項目四</li>
</ul>
appendChild() 方法還可以添加已經(jīng)存在的元素,會將元素從原來的位置移到新的位置
復制代碼 代碼如下:
var ul = document.getElementById("myList"); //獲得ul
ul.appendChild(ul.firstChild); //把ul的第一個元素節(jié)點移到ul子節(jié)點的末尾
運行后(IE):
復制代碼 代碼如下:
<ul id="myList">
<li>項目二</li>
<li>項目三</li>
<li>項目一</li>
</ul>
insertBefore() 方法 ,如果不是在末尾插入節(jié)點,而是想放在特定的位置上,用這個方法,該方法接受2個參數(shù),第一個是要插入的節(jié)點,第二個是參照節(jié)點,返回要添加的元素節(jié)點
復制代碼 代碼如下:
var ul = document.getElementById("myList"); //獲得ul
var li = document.createElement("li"); //創(chuàng)建li
li.innerHTML= "項目四"; //向li內(nèi)添加文本
ul.insertBefore(li,ul.firstChild); //把li添加到ul的第一個子節(jié)點前
添加后:
復制代碼 代碼如下:
<ul id="myList">
<li>項目四</li>
<li>項目一</li>
<li>項目二</li>
<li>項目三</li>
</ul>
復制代碼 代碼如下:
var ul = document.getElementById("myList"); //獲得ul
var li = document.createElement("li"); //創(chuàng)建li
li.innerHTML= "項目四"; //向li內(nèi)添加文本
ul.insertBefore(li,ul.null); //把li添加到ul的子節(jié)點末尾
添加后:
復制代碼 代碼如下:
<ul id="myList">
<li>項目一</li>
<li>項目二</li>
<li>項目三</li>
<li>項目四</li>
</ul>
復制代碼 代碼如下:
var ul = document.getElementById("myList"); //獲得ul
var li = document.createElement("li"); //創(chuàng)建li
li.innerHTML= "項目四"; //向li內(nèi)添加文本
var lis = ul.getElementsByTagName("li") //獲取ul中所有l(wèi)i的集合
ul.insertBefore(li,lis[1]); //把li添加到ul中的第二個li節(jié)點前
添加后:
復制代碼 代碼如下:
<ul id="myList">
<li>項目一</li>
<li>項目四</li>
<li>項目二</li>
<li>項目三</li>
</ul>
3.移除元素節(jié)點
removeChild() 方法 ,用于移除節(jié)點,接受一個參數(shù),即要移除的節(jié)點,返回被移除的節(jié)點,注意被移除的節(jié)點仍然在文檔中,不過文檔中已沒有其位置了
復制代碼 代碼如下:
var ul = document.getElementById("myList"); //獲得ul
var fromFirstChild = ul.removeChild(ul.firstChild); //移除ul第一個子節(jié)點1 var ul = document.getElementById("myList"); //獲得ul
var lis = ul.getElementsByTagName("li") //獲取ul中所有l(wèi)i的集合
ul.removeChild(lis[0]); //移除第一個li,與上面不同,要考慮瀏覽器之間的差異
4.替換元素節(jié)點
replaceChild() 方法 ,用于替換節(jié)點,接受兩個參數(shù),第一參數(shù)是要插入的節(jié)點,第二個是要替換的節(jié)點,返回被替換的節(jié)點
復制代碼 代碼如下:
var ul = document.getElementById("myList"); //獲得ul
var fromFirstChild = ul.replaceChild(ul.firstChild); //替換ul第一個子節(jié)點1 var ul = document.getElementById("myList"); //獲得ul;
var li = document.createElement("li"); //創(chuàng)建li
li.innerHTML= "項目四"; //向li內(nèi)添加文本
var lis = ul.getElementsByTagName("li") //獲取ul中所有l(wèi)i的集合
var returnNode = ul.replaceChild(li,lis[1]); //用創(chuàng)建的li替換原來的第二個li
5.復制節(jié)點
cloneNode() 方法,用于復制節(jié)點, 接受一個布爾值參數(shù), true 表示深復制(復制節(jié)點及其所有子節(jié)點), false 表示淺復制(復制節(jié)點本身,不復制子節(jié)點)
復制代碼 代碼如下:
var ul = document.getElementById("myList"); //獲得ul
var deepList = ul.cloneNode(true); //深復制
var shallowList = ul.cloneNode(false); //淺復制
節(jié)點的操作要注意IE和其它瀏覽器的差異(第十八節(jié)中有講到)
您可能感興趣的文章:
- JavaScript DOM節(jié)點操作方法總結(jié)
- Javascript的各種節(jié)點操作實例演示代碼
- JavaScript 節(jié)點操作 以及DOMDocument屬性和方法
- js操作DOM--添加、刪除節(jié)點的簡單實例
- JavaScript操作HTML DOM節(jié)點的基礎(chǔ)教程
- JavaScript節(jié)點及列表操作實例小結(jié)
- Js操作樹節(jié)點自動折疊展開的幾種方法
- 使用js完成節(jié)點的增刪改復制等的操作
- js和jquery對dom節(jié)點的操作(創(chuàng)建/追加)
- javascript dom操作之cloneNode文本節(jié)點克隆使用技巧
- JavaScript原生節(jié)點操作小結(jié)
相關(guān)文章
Javascript排序算法之合并排序(歸并排序)的2個例子
這篇文章主要介紹了Javascript排序算法之合并排序(歸并排序)的2個例子,需要的朋友可以參考下2014-04-04javascript實現(xiàn)的網(wǎng)頁局布刷新效果
AJAX,近幾年火熱起來的一個詞.什么是ajax本文就不介紹了,其實,AJAX也就是 javascript腳本的應(yīng)用.全拼是:AsynchronousJavaScript+XML .現(xiàn)在我們就來看一個用javascript實現(xiàn)的局部刷新2008-12-12JavaScript對HTML DOM使用EventListener進行操作
這篇文章主要介紹了JavaScript對HTML DOM使用EventListener進行操作的方法,用于向HTML元素中添加事件,需要的朋友可以參考下2015-10-10JavaScript中用于生成隨機數(shù)的Math.random()方法
這篇文章主要介紹了JavaScript中用于生成隨機數(shù)的Math.random()方法,是JS入門學習中的基礎(chǔ)知識,需要的朋友可以參考下2015-06-06