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

JavaScript DOM實(shí)戰(zhàn):創(chuàng)建和克隆元素

開發(fā) 前端
理論上上說,通過JavaScript DOM,你可以從樹中移除所有的元素,創(chuàng)建新元素,或者重整文檔樹,從而完全改變頁面,但這個(gè)特性用起來有些限制,文章將介紹使用JavaScript DOM來創(chuàng)建和克隆元素。

DOM允許你創(chuàng)建自己的元素和文本節(jié)點(diǎn),并把它們添加大文檔樹中。理論上上說,你可以從樹中移除所有的元素,創(chuàng)建新元素,或者重整文檔樹,從而完全改變頁面。但是在實(shí)踐中,這個(gè)特性用起來有些限制。DOM也允許你克隆現(xiàn)有的元素,已便你能方便地復(fù)制文檔的某一部分并在文檔中分發(fā)副本。

51CTO推薦閱讀:JavaScript DOM的本質(zhì)及操作方法

createElement()和createTextNode()

createElement()和createTextNode()做的事情正如它們的名字所說的那樣。最常見的JavaScript DOM方法實(shí)戰(zhàn)-修改文檔樹中已經(jīng)用過它們。當(dāng)時(shí)的目的是把新創(chuàng)建的元素添加到文檔樹里,使它成為某個(gè)元素的***一個(gè)子節(jié)點(diǎn)。

  1. //創(chuàng)建一個(gè)li新元素  
  2. var newChild=document.createElement('li');  
  3. //創(chuàng)建一個(gè)a 新元素  
  4. var newLink=document.createElement('a')  
  5. //創(chuàng)建一個(gè) Text 節(jié)點(diǎn)  
  6. var newText=document.createTextNode('My Wiki');  

newChild指向新創(chuàng)建的<li>元素對象,newLink指向新創(chuàng)建的<a>元素對象,而newText指向新創(chuàng)建的文本節(jié)點(diǎn)對象。這些節(jié)點(diǎn)都還沒有被插入文檔中。最常見的JavaScript DOM方法實(shí)戰(zhàn)-修改文檔樹中,用到的appendChild()或insertBefore()將它們附加到文檔樹中。例如:

  1. var nav=document.getElementById("nav");  
  2. //創(chuàng)建一個(gè)li新元素  
  3. var newChild=document.createElement('li');  
  4. //創(chuàng)建一個(gè)a 新元素  
  5. var newLink=document.createElement('a')  
  6. //創(chuàng)建一個(gè) Text 節(jié)點(diǎn)  
  7. var newText=document.createTextNode('My Wiki');  
  8. //把Text添加到a元素節(jié)點(diǎn)中  
  9. newLink.appendChild(newText);  
  10. //給a元素節(jié)點(diǎn)設(shè)置屬性href和內(nèi)容  
  11. newLink.setAttribute('href',"#");  
  12. //把a(bǔ)元素節(jié)點(diǎn)添加到新的li元素節(jié)點(diǎn)中  
  13. newChild.appendChild(newLink);  
  14. //把新的li元素節(jié)點(diǎn)添加到 ul 元素節(jié)點(diǎn)里  
  15. nav.appendChild(newChild);  

這先將文本節(jié)點(diǎn)附加到<a>中,然后再將包含文本節(jié)點(diǎn)的<a>附加到<li>中,***把包含<a>和文本的<li>附加到<ul>中。此時(shí)我的導(dǎo)航條ul中多了一個(gè)li子節(jié)點(diǎn)。

createTextNode()和HTML實(shí)體

createTextNode()有一個(gè)問題:它不能創(chuàng)建類似于&euro;(€ 歐元符號)&yen;(¥ 人民幣符號) © (&copy; 版權(quán)符號)&#8220;(“左雙引號)&#8221;(” 右雙引號)等,這樣的HTML實(shí)體元素。它會(huì)按字面創(chuàng)建文本,而不是創(chuàng)建你所需要的符號 。

  1. <script  type="text/javascript"> 
  2. window.onload=function(){  
  3.  var x=document.createTextNode("&copy; Copyrights reserved");  
  4.  document.getElementById("test").appendChild(x);  
  5. }  
  6. </script>  

不過,我們可以使用innerHTML來代替:

  1. <script  type="text/javascript"> 
  2. window.onload=function(){   
  3. document.getElementById("test").innerHTML="&copy; 
  4. Copyrights reserved";  
  5. }  
  6. </script>  

關(guān)于innerHTML屬性的用法,我們會(huì)在下一節(jié)中作為專題來具體的討論。

cloneNode()

cloneNode()方法克隆一個(gè)節(jié)點(diǎn),即它能對節(jié)點(diǎn)做一個(gè)***的復(fù)制,使你可以在隨后將其插入到文檔樹中。導(dǎo)航條HTML代碼:

  1. <div id="menu"> 
  2.     <h1>我的導(dǎo)航條</h1>            
  3.     <ul id="nav"> 
  4.        <li><a href="#">HOME</a></li> 
  5.        <li><a href="#">(X)Html / Css</a></li> 
  6.        <li><a href="#">Ajax / RIA</a></li> 
  7.        <li><a href="#">GoF</a></li> 
  8.        <li><a href="#">JavaScript</a></li> 
  9.        <li><a href="#">JavaWeb</a></li> 
  10.        <li><a href="#">jQuery</a></li> 
  11.        <li><a href="#">MooTools</a></li> 
  12.        <li><a href="#">Python</a></li> 
  13.        <li><a href="#">Resources</a></li> 
  14.     </ul> 
  15. </div>  

測試cloneNode()

  1. <script  type="text/javascript"> 
  2. window.onload=function(){  
  3.      var nav_list=[];  
  4.   var nav=document.getElementById("nav");  
  5.      navnav_list=nav.getElementsByTagName("li");  
  6.   var x=nav_list[0];  
  7.   var y=x.cloneNode(true);  
  8.   nav.appendChild(y);  
  9. }  
  10. </script> 

要想正確的使用cloneNode(),你必須了解它的一下二個(gè)特征:

1. cloneNode()接受一個(gè)可選值為true或false的參數(shù)。True 表示克隆元素和它的所有子節(jié)點(diǎn)。False表示克隆元素但不包含它的子節(jié)點(diǎn)。通常,我們在實(shí)踐中用true,我從來沒有遇到過想要克隆一個(gè)節(jié)點(diǎn)但不包含它的子節(jié)點(diǎn)的情形。

2. cloneNode()不會(huì)克隆事件處理程序。這相當(dāng)?shù)淖屓藧阑穑恢肋@個(gè)方法是怎么定義的(原因我也不知道)所以每次你克隆一個(gè)節(jié)點(diǎn),你不得不在克隆上重新定義事件處理程序。

原文地址:http://cssrainbow.cn/tutorials/javascript/589.html

【編輯推薦】

  1. 大話HTML DOM與XML DOM的區(qū)別與聯(lián)系
  2. XML DOM新手入門指南
  3. JavaScript DOM的本質(zhì)及操作方法 
責(zé)任編輯:王曉東 來源: cssrainbow
相關(guān)推薦

2010-09-13 14:24:17

JavaScript

2010-09-28 13:40:52

DOM元素

2010-09-13 16:46:29

JavaScriptHTML DOM節(jié)點(diǎn)

2024-01-17 08:00:56

LVM磁盤Linux

2010-01-25 11:28:59

2010-09-08 17:26:46

JavaScript

2010-09-28 14:12:50

Javascript

2010-09-13 17:12:55

JavaScript

2021-03-18 10:45:02

JavaScript數(shù)組運(yùn)算符

2021-11-09 07:59:50

開發(fā)

2010-07-05 11:14:32

2010-08-05 13:23:05

NFS協(xié)議

2021-06-03 10:00:47

JavaScript 前端數(shù)克隆對象

2012-01-13 12:57:48

Java

2009-09-28 15:50:53

Hibernate創(chuàng)建持久化Product

2010-08-02 17:24:25

NFS目錄

2021-04-09 18:01:03

前端ReactDOM

2017-07-19 14:26:01

前端JavaScriptDOM

2010-09-10 16:21:58

JavaScript

2014-05-26 16:29:12

Shadow DomWeb Compone
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲毛片| 在线免费观看毛片 | 国产精品久久久久影院色老大 | 国产一区二区三区久久久久久久久 | 久久草在线视频 | 欧美精 | 欧美日韩成人在线 | 欧美日韩视频一区二区 | 久久精品免费一区二区三 | 精品一二三 | 91传媒在线观看 | 成年人在线观看视频 | 欧美午夜在线 | 日本成年免费网站 | 激情91| 国产欧美精品在线观看 | 欧美午夜精品理论片a级按摩 | 国产999精品久久久久久 | 一区二区三区亚洲 | 成人免费黄色 | 欧美999| 国产特级毛片aaaaaa喷潮 | 色播久久久 | 欧美va大片| 日韩三片 | 视频一区二区中文字幕 | 国产精品自在线 | 一区二区三区在线 | 欧 | 国产视频久久 | 亚洲国产精品99久久久久久久久 | 91亚洲欧美 | 亚洲精选久久 | 99精品在线免费观看 | 免费在线看黄 | 日韩欧美在线视频 | av一区二区在线观看 | 狠狠干综合视频 | 日韩在线大片 | 伊人网国产 | 国产亚洲成av人片在线观看桃 | 365夜爽爽欧美性午夜免费视频 |