JavaScript DOM实战:创建和克隆元素
创始人
2024-07-13 12:51:21
0

DOM允许你创建自己的元素和文本节点,并把它们添加大文档树中。理论上上说,你可以从树中移除所有的元素,创建新元素,或者重整文档树,从而完全改变页面。但是在实践中,这个特性用起来有些限制。DOM也允许你克隆现有的元素,已便你能方便地复制文档的某一部分并在文档中分发副本。

51CTO推荐阅读:JavaScript DOM的本质及操作方法

createElement()和createTextNode()

createElement()和createTextNode()做的事情正如它们的名字所说的那样。最常见的JavaScript DOM方法实战-修改文档树中已经用过它们。当时的目的是把新创建的元素添加到文档树里,使它成为某个元素的***一个子节点。

  1. //创建一个li新元素  
  2. var newChild=document.createElement('li');  
  3. //创建一个a 新元素  
  4. var newLink=document.createElement('a')  
  5. //创建一个 Text 节点  
  6. var newText=document.createTextNode('My Wiki');  

newChild指向新创建的

  • 元素对象,newLink指向新创建的元素对象,而newText指向新创建的文本节点对象。这些节点都还没有被插入文档中。最常见的JavaScript DOM方法实战-修改文档树中,用到的appendChild()或insertBefore()将它们附加到文档树中。例如:

    1. var nav=document.getElementById("nav");  
    2. //创建一个li新元素  
    3. var newChild=document.createElement('li');  
    4. //创建一个a 新元素  
    5. var newLink=document.createElement('a')  
    6. //创建一个 Text 节点  
    7. var newText=document.createTextNode('My Wiki');  
    8. //把Text添加到a元素节点中  
    9. newLink.appendChild(newText);  
    10. //给a元素节点设置属性href和内容  
    11. newLink.setAttribute('href',"#");  
    12. //把a元素节点添加到新的li元素节点中  
    13. newChild.appendChild(newLink);  
    14. //把新的li元素节点添加到 ul 元素节点里  
    15. nav.appendChild(newChild);  

    这先将文本节点附加到中,然后再将包含文本节点的附加到

  • 中,***把包含和文本的
  • 附加到 
  •   

    测试cloneNode()

    1.  
    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.  

    要想正确的使用cloneNode(),你必须了解它的一下二个特征:

    1. cloneNode()接受一个可选值为true或false的参数。True 表示克隆元素和它的所有子节点。False表示克隆元素但不包含它的子节点。通常,我们在实践中用true,我从来没有遇到过想要克隆一个节点但不包含它的子节点的情形。

    2. cloneNode()不会克隆事件处理程序。这相当的让人恼火,不知道这个方法是怎么定义的(原因我也不知道)所以每次你克隆一个节点,你不得不在克隆上重新定义事件处理程序。

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

    【编辑推荐】

    1. 大话HTML DOM与XML DOM的区别与联系
    2. XML DOM新手入门指南
    3. JavaScript DOM的本质及操作方法 

    相关内容

    热门资讯

    如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
    如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
    施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
    Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
    20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
    规避非法攻击 用好路由器远程管... 单位在市区不同位置设立了科技服务点,每一个服务点的员工都通过宽带路由器进行共享上网,和单位网络保持联...
    范例解读VB.NET获取环境变... VB.NET编程语言的使用范围非常广泛,可以帮助开发人员处理各种程序中的需求,而且还能对移动设备进行...
    德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...