document.createElement()用法


Posted in Javascript onMarch 13, 2013

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

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

        <script type="text/javascript">
            var board = document.getElementById("board");
            var e =document.createElement("input");
           e.type = "button";
            e.value = "这是测试加载的小例子";
            var object = board.appendChild(e);
        </script>

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

例2:

        <script type="text/javascript">
            var board = document.getElementById("board");
            var e2 = document.createElement("select");
            e2.options[0] = new Option("加载项1", "");
            e2.options[1] = new Option("加载项2", "");
            e2.size = "2";
            var object = board.appendChild(e2);
        </script>

效果:在标签board中加载一个下拉列表框,属性值为“加载项1”和“加载项2”。

例3:

        <script type="text/javascript">
            var board = document.getElementById("board");           
            var e3 = document.createElement("input");
           e4.setAttribute("type", "text");
            e4.setAttribute("name", "q");
            e4.setAttribute("value", "使用setAttribute");
            e4.setAttribute("onclick", "javascript:alert('This is a test!');");           
            var object = board.appendChild(e3);
        </script>

效果:在标签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>

我们可以这样写:

<script type="text/javascript">
  var oTest = document.getElementById("test");
  var newNode = document.createElement("p");
  newNode.innerHTML = "This is a test";
  //测试从这里开始
  //appendChild方法:
  oTest.appendChild(newNode);
  //insertBefore方法:
  oTest.insertBefore(newNode,null);
</script>

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

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

<script type="text/javascript">
  var oTest = document.getElementById("test");
  var refChild = document.getElementById("x1");
  var newNode = document.createElement("p");
  newNode.innerHTML = "This is a test";
  oTest.insertBefore(newNode,refChild);
</script>

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

又或:

<script type="text/javascript">
  var oTest = document.getElementById("test");
  var refChild = document.getElementById("x1");
  var newNode = document.createElement("p");
  newNode.innerHTML = "This is a test";
  oTest.insertBefore(newNode,refChild.nextSibling);
</script>

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

还可为:

<script type="text/javascript">
  var oTest = document.getElementById("test");
  var newNode = document.createElement("p");
  newNode.innerHTML = "This is a test";
  oTest.insertBefore(newNode,oTest.childNodes[0]); 
</script>

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

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

从这几个例子中得出:

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

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

Javascript 相关文章推荐
javascript 特殊字符串
Feb 25 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
Mar 01 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
Feb 22 Javascript
JS实现很酷的水波文字特效实例
Feb 26 Javascript
基于javascript实现全屏漂浮广告
Mar 31 Javascript
EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码
Jun 02 Javascript
JavaScript日期对象(Date)基本用法示例
Jan 18 Javascript
js实现常见的工具条效果
Mar 02 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
May 26 Javascript
理理Vue细节(推荐)
Apr 16 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
Jul 07 Javascript
基于layPage插件实现两种分页方式浅析
Jul 27 Javascript
js获得鼠标的坐标值的方法
Mar 13 #Javascript
JavaScript将Table导出到Excel实现思路及代码
Mar 13 #Javascript
九种js弹出对话框的方法总结
Mar 12 #Javascript
瀑布流布局并自动加载实现代码
Mar 12 #Javascript
JavaScript中数组对象的那些自带方法介绍
Mar 12 #Javascript
P3P Header解决Cookie跨域的问题
Mar 12 #Javascript
解决JS浮点数运算出现Bug的方法
Mar 12 #Javascript
You might like
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
PHP循环结构实例讲解
2014/02/10 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
PHP dirname(__FILE__)原理及用法解析
2020/10/28 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
2019/11/04 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
python和pyqt实现360的CLable控件
2014/02/21 Python
python开发中module模块用法实例分析
2015/11/12 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
美国翻新电子产品商店:The Store
2019/10/08 全球购物
自我鉴定模板
2013/10/29 职场文书
水污染治理专业毕业生推荐信
2013/11/14 职场文书
厨房工作人员岗位职责
2013/11/15 职场文书
学生评语大全
2014/04/18 职场文书
暑期培训班策划方案
2014/08/26 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
同意报考公务员证明
2015/06/17 职场文书
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers