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+xml生成级联下拉框代码
Jul 24 Javascript
JavaScript高级程序设计(第3版)学习笔记5 js语句
Oct 11 Javascript
JavaScript随机生成信用卡卡号的方法
Apr 07 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
Sep 05 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
Nov 06 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
Dec 22 Javascript
基于Bootstrap的网页设计实例
Mar 01 Javascript
js读取本地文件的实例
Dec 22 Javascript
vue发送websocket请求和http post请求的实例代码
Jul 11 Javascript
js实现金山打字通小游戏
Jul 24 Javascript
vue在响应头response中获取自定义headers操作
Jul 24 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
Feb 06 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
非常有用的9个PHP代码片段
2016/04/06 PHP
理解JavaScript的caller,callee,call,apply
2009/04/28 Javascript
自己的js工具 Cookie 封装
2009/08/21 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
python实现计算倒数的方法
2015/07/11 Python
Python实现Linux命令xxd -i功能
2016/03/06 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
Python使用pymysql小技巧
2017/06/04 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
python人民币小写转大写辅助工具
2018/06/20 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
python面向对象 反射原理解析
2019/08/12 Python
python定时任务 sched模块用法实例
2019/11/04 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
政法大学毕业生自荐信范文
2014/01/01 职场文书
党员目标管理责任书
2014/07/25 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书