博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
document.createElement
阅读量:6298 次
发布时间:2019-06-22

本文共 4879 字,大约阅读时间需要 16 分钟。

document.createElement()的用法

 

      document.createElement()是在对象中创建一个对象,要与appendChild() 或 insertBefore()方法联合使用。其中,appendChild() 方法在节点的子节点列表末添加新的子节点。insertBefore() 方法在节点的子节点列表任意位置插入新的节点。

 

      下面,举例说明document.createElement()的用法。<div id="board"></div>

 

例1:

        

    

  

效果:在标签board中加载一个按钮,属性值为“这是测试加载的小例子”。 

      

例2:

        

  

效果:在标签board中加载一个文本框,属性值为“使用setAttribute”。 当点击这个文本框时,会弹出对话框“This is a test!”。

 

        根据上面例子,可以看出,可以通过加载对象的属性来设置,参数是相同的。使用e.type="text" 和 e.setAttribute("type","text")效果是一致的。

       

        下面,我们用实例来讲述一下appendChild() 方法和insertBefore() 方法的不同

        比如我们要在下面这个div中插入一个子节点P时:<div id="test"><p id="x1">Node</p><p>Node</p></div>

我们可以这样写:

  

      通过以上的代码,可以测试到一个新的节点被创建到了节点div下,且该节点是div最后一个节点。很明显,通过这个例子,可以知道appendChildhild和insertBefore都可以进行插入节点的操作。

   在上面的例子中有这样一句代码:oTest.insertBefore(newNode,null) ,这里insertBefore有2个参数可以设置,第一个是和appendChild相同的,第二却是它特有的。它不仅可以为null,还可以为:

  

效果:这个例子将在x1节点前面插入一个新的节点

 

又或:

  

效果:这个例子将在x1节点的下一个节点前面插入一个新的节点

 

还可为:

  

  这个例子将在第一子节点前面插入一个新的节点,也可以通过改变childNodes[0,1,...]来在其它位置插入新的节点

由于可见insertBefore()方法的特性是在已有的子节点前面插入新的节点,但例一中使用insertBefore()方法也可以在子节点列表末插入新节点的。两种情况结合起来,发现insertBefore()方法插入节点,是可以在子节点列表的任意位置。

  从这几个例子中得出:

  appendChild() 方法在节点的子节点列表末添加新的子节点。

  insertBefore() 方法在节点的子节点列表任意位置插入新的节点。

 

//创建img对象            var newspan = document.createElement("img");//创建img对象//设置img对象css样式            newspan.style.position = "absolute";            newspan.style.right=0;            newspan.cssFloat='right';             newspan.style.right=0;            newspan.style.top="31px";            newspan.style.cursor="pointer";            newspan.src = 'http://lvyou.elong.com/static/swfupload/images/detele.gif';//设置img对象onclick             newspan.onclick = function() {                if (confirm('确认要删除图片吗'))                {                    //既删除数据又删除div                    var pflag = this.parentNode;                    var url2 = "xxx?action=delete&from_ajax=1&pid=" + this.parentNode.id;                    var req = (window.XMLHttpRequest) ? new XMLHttpRequest() : (window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : false);                    if (!req) exit;                    var method = "GET";                    req.open(method,url2,true);                    req.onreadystatechange = function () {                        if (req.readyState == 4) {                            if(req.status == 200) {                                    //既删除数据又删除div                                    //alert(req.responseText);                                    if (req.responseText)                                    {                                        pflag.parentNode.removeChild(pflag);                                    }                                    else                                    {                                        alert("图片删除失败");                                    }                                }else{                                alert("There was a problem with the request " + req.status);                            }                        }                    }                    req.send(url2);                }            }//接入dom            document.getElementById(pid).appendChild(newspan);

  

范例2:

//创建TEXTAREA对象     var newTextElement = document.createElement("textarea");     newTextElement.name = pid+"[description]";     newTextElement.rows = 5;     newTextElement.cols = 20;     document.getElementById(pid).appendChild(newTextElement);

  

范例3:

//创建input对象insertBefore实例                var newElement = document.createElement("input");                newElement.name = pid+"[title]";                newElement.type= "text";                newElement.size= 9;                newElement.value= '标题';                newElement.onclick = function() {                  if (this.value=='标题') {                        this.value='';                    }                }                    document.getElementById(pid).insertBefore(newElement, document.getElementById(pid).childNodes[0]);                var newElementDiv = document.createElement("div");                newElementDiv.className = 'search-con';                                var newDidElement = document.createElement("input");                newDidElement.name =  pid+"_dids[]";                newDidElement.className= "_dests";                newDidElement.type= "text";                newDidElement.size= 9;                ***newDidElement.setAttribute("rel",1); //如果直接赋值不能实现,使用setAttribute方法可以实现                                newElementDiv.appendChild(newDidElement);                document.getElementById(pid).appendChild(newElementDiv);                                var newIdElement = document.createElement("input");                newIdElement.type= "hidden";                newIdElement.name =  pid+"[pid]";                newIdElement.value = pid.substring(3);                                document.getElementById(pid).appendChild(newIdElement);            }

  

 

转载地址:http://fqmta.baihongyu.com/

你可能感兴趣的文章
Why I Began
查看>>
同一台电脑上Windows 7和Ubuntu 14.04的CPU温度和GPU温度对比
查看>>
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>
新手 开博
查看>>
借助开源工具高效完成Java应用的运行分析
查看>>
163 yum
查看>>
第三章:Shiro的配置——深入浅出学Shiro细粒度权限开发框架
查看>>
80后创业的经验谈(转,朴实但实用!推荐)
查看>>
让Windows图片查看器和windows资源管理器显示WebP格式
查看>>
我的友情链接
查看>>
vim使用点滴
查看>>
embedded linux学习中几个需要明确的概念
查看>>
mysql常用语法
查看>>
Morris ajax
查看>>
【Docker学习笔记(四)】通过Nginx镜像快速搭建静态网站
查看>>
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
查看>>
<转>云主机配置OpenStack使用spice的方法
查看>>
java jvm GC 各个区内存参数设置
查看>>
[使用帮助] PHPCMS V9内容模块PC标签调用说明
查看>>