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 相关文章推荐
JS解密入门之凭直觉解
Jun 25 Javascript
jQuery timers计时器简单应用说明
Oct 28 Javascript
js汉字转拼音实现代码
Feb 06 Javascript
html的DOM中document对象anchors集合用法实例
Jan 21 Javascript
javascript实现的图片切割多块效果实例
May 07 Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 Javascript
老生常谈JavaScript 函数表达式
Sep 01 Javascript
AngularJS 模块化详解及实例代码
Sep 14 Javascript
使用Curl命令查看请求响应时间方法
Nov 04 Javascript
详解Angular2组件之间如何通信
Jun 22 Javascript
JS基于ES6新特性async await进行异步处理操作示例
Feb 02 Javascript
基于javascript处理nginx请求过程详解
Jul 07 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开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
PHP读取Excel类文件
2017/05/15 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
2012/03/01 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
jQuery构造函数init参数分析续
2015/05/13 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
从组件封装看Vue的作用域插槽的实现
2019/02/12 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
python 对key为时间的dict排序方法
2018/10/17 Python
ubuntu上安装python的实例方法
2019/09/30 Python
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
人事主管的岗位职责
2013/11/16 职场文书
医学生职业规划范文
2014/01/05 职场文书
社区庆中秋节活动方案
2014/02/07 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
产品质量保证书范本
2015/02/27 职场文书
入党积极分子个人总结
2015/03/02 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书