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 相关文章推荐
E3 tree 1.6在Firefox下显示问题的修复方法
Jan 30 Javascript
jQuery中innerWidth()方法用法实例
Jan 19 Javascript
JS实现仿QQ聊天窗口抖动特效
May 10 Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
May 23 Javascript
jQuery实现大图轮播
Feb 13 Javascript
js中的面向对象入门
Mar 06 Javascript
详解Web使用webpack构建前端项目
Sep 23 Javascript
搭建一个Koa后端项目脚手架的方法步骤
May 30 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
Jul 06 Javascript
node.js Promise对象的使用方法实例分析
Dec 26 Javascript
three.js 实现露珠滴落动画效果的示例代码
Mar 01 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事务处理实例详解
2014/07/11 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
laravel学习笔记之模型事件的几种用法示例
2017/08/15 PHP
php慢查询日志和错误日志使用详解
2021/02/27 PHP
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
JavaScript命名空间模式实例详解
2019/06/20 Javascript
vue视频播放暂停代码
2019/11/08 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
微信小程序实现电子签名并导出图片
2020/05/27 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
Python smallseg分词用法实例分析
2015/05/28 Python
Python随手笔记之标准类型内建函数
2015/12/02 Python
python动态加载包的方法小结
2016/04/18 Python
Python 12306抢火车票脚本
2018/02/07 Python
python实现贪吃蛇游戏
2020/03/21 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
一份恶作剧的检讨书
2014/09/13 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
放假通知怎么写
2015/08/18 职场文书
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL
netty 实现tomcat的示例代码
2022/06/05 Servers
Docker部署Mysql8的实现步骤
2022/07/07 Servers