DOM允许你创建自己的元素和文本节点,并把它们添加大文档树中。理论上上说,你可以从树中移除所有的元素,创建新元素,或者重整文档树,从而完全改变页面。但是在实践中,这个特性用起来有些限制。DOM也允许你克隆现有的元素,已便你能方便地复制文档的某一部分并在文档中分发副本。
成都创新互联公司主要从事做网站、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务太子河,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
推荐阅读:JavaScript DOM的本质及操作方法
createElement()和createTextNode()
createElement()和createTextNode()做的事情正如它们的名字所说的那样。最常见的JavaScript DOM方法实战-修改文档树中已经用过它们。当时的目的是把新创建的元素添加到文档树里,使它成为某个元素的***一个子节点。
- //创建一个li新元素
- var newChild=document.createElement('li');
- //创建一个a 新元素
- var newLink=document.createElement('a')
- //创建一个 Text 节点
- var newText=document.createTextNode('My Wiki');
newChild指向新创建的
- var nav=document.getElementById("nav");
- //创建一个li新元素
- var newChild=document.createElement('li');
- //创建一个a 新元素
- var newLink=document.createElement('a')
- //创建一个 Text 节点
- var newText=document.createTextNode('My Wiki');
- //把Text添加到a元素节点中
- newLink.appendChild(newText);
- //给a元素节点设置属性href和内容
- newLink.setAttribute('href',"#");
- //把a元素节点添加到新的li元素节点中
- newChild.appendChild(newLink);
- //把新的li元素节点添加到 ul 元素节点里
- nav.appendChild(newChild);
这先将文本节点附加到中,然后再将包含文本节点的附加到中。此时我的导航条ul中多了一个li子节点。
createTextNode()和HTML实体
createTextNode()有一个问题:它不能创建类似于€(€ 欧元符号)¥(¥ 人民币符号) © (© 版权符号)“(“左双引号)”(” 右双引号)等,这样的HTML实体元素。它会按字面创建文本,而不是创建你所需要的符号 。
- window.onload=function(){
- var x=document.createTextNode("© Copyrights reserved");
- document.getElementById("test").appendChild(x);
- }
不过,我们可以使用innerHTML来代替:
- window.onload=function(){
- document.getElementById("test").innerHTML="©
- Copyrights reserved";
- }
关于innerHTML属性的用法,我们会在下一节中作为专题来具体的讨论。
cloneNode()
cloneNode()方法克隆一个节点,即它能对节点做一个***的复制,使你可以在随后将其插入到文档树中。导航条HTML代码:
测试cloneNode()
- window.onload=function(){
- var nav_list=[];
- var nav=document.getElementById("nav");
- navnav_list=nav.getElementsByTagName("li");
- var x=nav_list[0];
- var y=x.cloneNode(true);
- nav.appendChild(y);
- }
要想正确的使用cloneNode(),你必须了解它的一下二个特征:
1. cloneNode()接受一个可选值为true或false的参数。True 表示克隆元素和它的所有子节点。False表示克隆元素但不包含它的子节点。通常,我们在实践中用true,我从来没有遇到过想要克隆一个节点但不包含它的子节点的情形。
2. cloneNode()不会克隆事件处理程序。这相当的让人恼火,不知道这个方法是怎么定义的(原因我也不知道)所以每次你克隆一个节点,你不得不在克隆上重新定义事件处理程序。
原文地址:http://cssrainbow.cn/tutorials/javascript/589.html
当前文章:JavaScriptDOM实战:创建和克隆元素
转载来于:http://www.36103.cn/qtweb/news40/30340.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联