博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
appendChild append insertBefore prepend
阅读量:6842 次
发布时间:2019-06-26

本文共 5309 字,大约阅读时间需要 17 分钟。

 

CreateTime--2017年11月2日16:57:59

Author:Marydon

appendChild()与append() insertBefore()与prepend()区别与联系

描述:

  1.appendChild()是javascript在父节点最后面插入子节点的方法;

  2.append()是jquery在父节点最后面插入子节点的方法;

  3.insertBefore()在javascript中:在父节点最前面插入子节点,在jquery中:为指定节点前面插入兄弟节点;

  4.prepend()是jquery在父节点最前面插入子节点的方法。

共性:

  1.都是用来插入节点的,insertBefore在jquery的应用除外;

  2.都是通过操作父节点来完成子节点的插入。

特性:

  1.appendChild(tagElement);

    tagElement 只能是标签dom对象

    dom对象的获取方式:方法一,通过js动态创建标签元素(通常使用);方法二,使用js从页面获取dom对象。

  举例:

  HTML片段

    
 

  JAVASCRPT

//body标签添加一个子节点// 方式一var divElement = document.createElement('div');divElement.innerHTML = "通过js创建dom对象的方式实现";document.body.appendChild(divElement);// 方式二divElement = $('#test').clone()[0];divElement.id = '';divElement.style.display = 'block';divElement.innerHTML = "通过js+jquery从页面获取dom对象的方式实现";document.body.appendChild(divElement);

  2.append(param)

    param可以有三种表现形式:HTML片段字符串、文本、通过js创建或获取的dom对象  

  举例:

//body标签添加一个子节点// 方式一var divTagStr = '
param为HTML片段字符串
'$("body").append(divTagStr);// 方式二var textStr = "param为文本";$("body").append(textStr);// 方式三var divElement = document.createElement('div');divElement.innerHTML = "param为通过js创建的dom对象";$("body").append(divElement);

  3.insertBefore()

  3.1 在javascript中的用法    

    parentElement.insertBefore(targetElement,positionElement);

    targetElement:目标对象,将要插入的元素;

    positionElement:插入位置对象,元素将被插入到该对象的前面。

    注意:该方法必须通过父节点才能够调用(只能通过父节点来完成对子节点的拼接)。

  举例:

    HTML片段

    

div中的段落标签p

    JAVASCRIPT  

window.onload = function(){            //id="test"的标签添加一个子节点    var divElement = document.createElement('div');    // appendChild()    divElement.innerHTML = "展示insertBefore()方法的用法";    var brotherElement = document.getElementById("duanluo");    brotherElement.parentNode.insertBefore(divElement,brotherElement);} 

  3.2 在jquery中的用法

    $(targetElement).insertBefore(positionElement);

    targetElement:目标对象,将要插入的元素;

    positionElement:插入位置对象,元素将被插入到该对象的前面

    注意:该方法必须通过即将插入的对象进行调用

  举例:

window.onload = function(){    var pElement = document.createElement('p');    pElement.innerHTML = "指定节点前插入兄弟节点";    $(pElement).insertBefore('#duanluo');}

  4.prepend(param)

    param可以有三种表现形式:HTML片段字符串、文本、通过js创建或获取的dom对象

情形一:

  通过父节点添加子节点

  1.在父节点最后面添加子节点; 

  HTML片段

    

div中的段落标签p

  JAVASCRIPT

window.onload = function(){            /* id="test"的标签添加一个子节点 */    // appendChild()    var divElement = document.createElement('div');    divElement.innerHTML = "使用js的appendChild()方法添加子节点";    document.getElementById("test").appendChild(divElement);    // append()    var divTag = "
使用jquery的append()方法添加子节点
"; $("#test").append(divTag);} 

  2.在父节点最前面添加子节点。

  HTML片段

测试insertBefore()

div中的段落标签p

  JAVASCRIPT

window.onload = function(){            /* id="test"的标签最前面添加一个子节点 */    // insertBefore()    var h1Element = document.createElement('h1');    h1Element.innerHTML = "使用js的insertBefore()方法添加子节点";    var parentElement = document.getElementById("test");    var firstElement = parentElement.firstChild;    parentElement.insertBefore(h1Element,firstElement);            // prepend()    var h1Tag = "

使用jquery的prepend()方法添加子节点

"; $("#test").prepend(h1Tag);}  

  3.使用jquery实现的另外两种方式

window.onload = function(){            /* 使用jquery的appendTo()添加子节点 */        var divTag = "
使用jquery的appendTo()方法添加子节点
"; $(divTag).appendTo("#test"); /* 使用jquery的prependTo()添加子节点 */ var h1Tag = "

使用jquery的prependTo()方法添加子节点

"; $(h1Tag).prependTo("#test");}

  3.1 append() prpend() appendTo() prpendTo()用法简述 

  append()和prpend()都是通过选取确定插入位置的对象来完成插入操作;

  语法:$(positionElement).append(targetElement)和$(positionElement).prepend(targetElement);

  appendTo()和prpendTo()都是通过选取将要插入的对象来指定插入操作。

  语法:$(targetElement).appendTo(positionElement)和$(targetElement).prpendTo(positionElement);

  小结:

    在父节点最后面添加子节点:

    javascirpt使用appendChild(),jquery使用append()或appendTo()

    在父节点最前面添加子节点

    javascirpt使用insertBefore(),jquery使用prpend()或prpendTo()

情形二:  

   1.在指定子节点后面添加兄弟节点;

   说明:javascript无法实现,jquery可以实现

  jquery实现:调用insertAfter()或after()实现

测试jquery指定节点后插入兄弟节点方法实现

div中的段落标签p

window.onload = function(){    var pTag = '

指定节点后插入兄弟节点

'; // 方法一 $(pTag).insertAfter('#duanluo'); // 方法二 $('#duanluo').after(pTag);}  

  2.在指定子节点前面添加兄弟节点。

  实现:

  HTML片段

测试insertBefore()

div中的段落标签p

  2.1 js实现:通过父节点添加兄弟节点(曲线救国)

window.onload = function(){            /* 指定位置添加一个兄弟节点 */    // insertBefore()    var pElement = document.createElement('p');    pElement.innerHTML = "指定节点前插入兄弟节点";    var parentElement = document.getElementById("test");    var brotherElement = document.getElementById("duanluo");    parentElement.insertBefore(pElement,brotherElement);}

  2.2 jquery实现:调用insertBefore()或before()方法实现

window.onload = function(){    var pTag = '

指定节点前插入兄弟节点

'; // 方法一 $(pTag).insertBefore('#duanluo'); // 方法二 $('#duanluo').before(pTag);}

  2.3 insertAfter() insertBefore() after() before()用法简述 

  insertAfter()和insertBefore()都是通过选取将要插入的对象来指定插入操作;

  语法:$(targetElement).insertAfter(positionElement)和$(targetElement).insertBefore(positionElement);

  after()和before()都是通过选取确定插入位置的对象来完成插入操作。

  语法:$(positionElement).after(targetElement)和$(positionElement).before(targetElement);

 

 

 </div

转载地址:http://vfzul.baihongyu.com/

你可能感兴趣的文章
JQuery捕获或获取当前click事件的事件对象ID
查看>>
在 Linux 系统中安装Load Generator ,并在windows 调用
查看>>
How to use Ivy to manage your OSGi bundle dependen
查看>>
51CTO六周年贺礼:译文一篇
查看>>
在CentOS 7上安装Kafka
查看>>
JSP笔记——1.运行原理
查看>>
Nginx 实现AJAX跨域请求
查看>>
Centos7 搭建InfluxDB+Grafana监控平台
查看>>
Atom 安装插件失败问题 (安装源被墙) | 解决办法
查看>>
storm实战入门:开发简易Topology实例
查看>>
我的友情链接
查看>>
mysql读写分离实战
查看>>
使用Kubespray部署生产可用的Kubernetes集群(1.11.2)
查看>>
MPICH2(r8733)的错误容忍
查看>>
我的友情链接
查看>>
Python:contextlib模块——上下文管理器工具
查看>>
数制之十进制转成其他进制
查看>>
运用bind()和connect()函数
查看>>
帧、数据报、段、Frame Datagram Segment Packet Fragment
查看>>
推荐一款免费的AD审计工具------Netwrix AD变更通知工具
查看>>