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中将HTMLCollection/NodeList/伪数组转换成数组的代码
Jul 31 Javascript
用jquery生成二级菜单的实例代码
Jun 24 Javascript
jquery设置控件位置的方法
Aug 21 Javascript
jquery实现的美女拼图游戏实例
May 04 Javascript
jquery无限级联下拉菜单简单实例演示
Nov 23 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
Jan 06 Javascript
详解Vue生命周期的示例
Mar 10 Javascript
Vue的轮播图组件实现方法
Mar 03 Javascript
javascript闭包的使用之按钮切换功能
Aug 30 Javascript
vue实现可视化可拖放的自定义表单的示例代码
Mar 20 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
Apr 16 jQuery
js仿360开机效果
Dec 26 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速度全攻略
2006/10/09 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
php获取图片信息的方法详解
2015/12/10 PHP
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
神奇的7个jQuery 3D插件整理
2011/01/06 Javascript
jQuery Ajax 实例全解析
2011/04/20 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
2019/03/11 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
Python标准异常和异常处理详解
2015/02/02 Python
python的unittest测试类代码实例
2017/12/07 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
英国汽车零件购物网站:GSF Car Parts
2019/05/23 全球购物
茶叶店创业计划书范文
2014/01/19 职场文书
小学庆六一活动总结
2014/08/28 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
士兵突击观后感
2015/06/16 职场文书