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 相关文章推荐
css+js实现部分区域高亮可编辑遮罩层
Mar 04 Javascript
js实现Select下拉框具有输入功能的方法
Feb 06 Javascript
JQuery中使文本框获得焦点的方法实例分析
Feb 28 Javascript
jQuery动态加载css文件实现方法
Jun 15 Javascript
JavaScript简单下拉菜单特效
Sep 13 Javascript
js中scrollTop()方法和scroll()方法用法示例
Oct 03 Javascript
微信小程序 页面跳转传递值几种方法详解
Jan 12 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
Feb 22 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
Jul 05 Javascript
Vue仿今日头条实例详解
Feb 06 Javascript
详解从买域名到使用pm2部署node.js项目全过程
Mar 07 Javascript
JavaScript使用ul中li标签实现删除效果
Apr 15 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/03/05 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
JavaScript去掉空格的方法集合
2010/12/28 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
在Python中实现贪婪排名算法的教程
2015/04/17 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
详解爬虫被封的问题
2019/04/23 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
关于VPN
2012/06/10 面试题
兼职业务员岗位职责
2014/01/01 职场文书
晚会主持词开场白
2014/03/17 职场文书
蓝颜请假条
2014/04/11 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js