原生JS添加节点方法与JQuery添加节点方法的比较及总结

一、首先构建一个简单布局,来供下边讲解使用

1、HTML部分代码:

<div id="div1">div1</div>
<div id="div2">div2
    <span id="span1">span1</span>
    <span id="span2">span2</span>
</div>
<div id="div3">div3
    <b id="b1">b1</b>
    <b id="b2">b2</b>
</div>

2、JS部分代码:(先把刚才在html中写的几个标签都获取到,此处只在原生JS中用,在JQuery中默认被删除)

var oDiv2 = document.getElementById(‘div2‘);var oSpan2 = document.getElementById(‘span2‘);var oB2 = document.getElementById(‘b2‘);

3、图示:

二、原生JS种添加节点一共有2种方法

1、appendChild()

(1)、概念:把要添加的节点添加到指定父级里面的最后面,所以也叫追加

(2)、使用方式:父级节点.appendChild( 要添加的节点 )

(3)、JS代码:

document.onclick = function(){
    oDiv2.appendChild(oB2);//将b2追加到div2里面的最后面
}

(4)、图示:

(5)、兼容性:所有浏览器都支持此方法

2、insertBefore()

(1)、概念:把要插入的节点添加到指定父级里面的指定节点之前

(2)、使用方式:父级节点.insertBefore( 要插入的节点,指定节点 )

(3)、JS代码:(注:每执行一次新方法时,上一个方法都会被注释掉,为了易懂,此处注释一次,下面的文章中将不再把注释上一个方法的代码发上来)

document.onclick = function(){
    //oDiv2.appendChild(oB2);此处将上一个方法注释
    oDiv2.insertBefore(oB2,oSpan2);//将b2插入到div2中的span2前面
}

(4)、图示:

(5)、兼容性:所有浏览器都支持此方法,但是值得注意的是,如果第二个参数节点不存在,在IE和Safari下会把要添加的节点使用appendChild()方法追加到指定父级中,而其他主流浏览器(Firefox、Chrome、Opera等)下会报错,所以在插入节点的时候,需要先判断第二个参数节点是否存在

三、JQuery中添加节点一共有4组方法,每组方法有2种方式

第一组:before()、insertBefore()

第二组:after()、insertAfter()

第三组:prepend()、prependTo()

第四组:append()、appendTo()

1、第一组的before()

(1)、概念:在指定节点的前面添加要添加的节点

(2)、使用方式:指定节点.before( 要添加的节点 )

(3)、JS代码:

先随便导入个jquery(此时默认上边通过原生JS获取元素的方法的代码已被删除,并且导入jquery的代码只发一次,后面的文章中不再发)

<script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
$(document).click(function(){
    $(‘#span2‘).before( $(‘#b2‘) );//在span2的前面添加b2
})

(4)、图示:

(5)、兼容性:所有浏览器都支持此方法

2、第一组的insertBefore()

(1)、概念:把要插入节点插入到指定节点的前面

(2)、使用方式:要插入的节点.insertBefore( 指定节点 )

(3)、JS代码:

$(document).click(function(){
    $(‘#b2‘).insertBefore( $(‘#span2‘) );//将b2插入到span2的前面
})

(4)、图示:

(5)、兼容性:所有浏览器都支持此方法

3、第二组的after()

(1)、概念:把要添加的节点添加到指定节点的后面

(2)、使用方式:指定节点.after( 要添加的节点 )

(3)、JS代码:

$(document).click(function(){
    $(‘#span2‘).after( $(‘#b2‘) );//在span2的后面添加b2
})

(4)、图示:

(5)、兼容性:所有浏览器都支持此方法

4、第二组的insertAfter()

(1)、概念:把要插入的节点插入到指定节点的后面

(2)、使用方式:要插入的节点.insertAfter( 指定节点 )

(3)、JS代码:

$(document).click(function(){
    $(‘#b2‘).insertAfter( $(‘#span2‘) );//将b2插入到span2的后面
})

(4)、图示:

(5)、兼容性:所有浏览器都支持此方法

5、第三组的prepend()

(1)、概念:在指定父级里面的最前面添加指定节点

(2)、使用方式:父级节点.prepend( 要添加的节点 )

(3)、JS代码:

$(document).click(function(){
    $(‘#div2‘).prepend( $(‘#b2‘) );//在div2里面的最前面添加b2
})

(4)、图示:

(5)、兼容性:所有浏览器都支持此方法

6、第三组的prependTo()

(1)、概念:把指定节点添加到指定父级里面的最前面

(2)、使用方式:要添加的节点.prependTo( 父级节点 )

(3)、JS代码:

$(document).click(function(){
    $(‘#b2‘).prependTo( $(‘#div2‘) );//将b2添加到div2里面的最前面
})

(4)、图示:

(5)、兼容性:所有浏览器都支持此方法

7、第四组的append()(注:此方法基本等同于原生JS的appendChild方法)

(1)、概念:在指定父级里面的最后面添加指定节点

(2)、使用方式:父级节点.append( 要添加的节点 )

(3)、JS代码:

$(document).click(function(){
    $(‘#div2‘).append( $(‘#b2‘) );//在div2里面的最后面添加b2
})

(4)、图示:

(5)、兼容性:所有浏览器都支持此方法

8、第四组的appendTo()

(1)、概念:把指定节点添加到指定父级里面的最后面

(2)、使用方式:要添加的节点.appendTo( 父级节点 )

(3)、JS代码:

$(document).click(function(){
    $(‘#b2‘).appendTo( $(‘#div2‘) );//把b2添加到div2里面的最后面
})

(4)、图示:

(5)、兼容性:所有浏览器都支持此方法

四、JQuery中添加节点的4组方法每组之间的区别

1、发现问题:眼尖的朋友不难发现,jquery这4组添加节点的方法,每组的2种方法达到的效果几乎都差不多,那么他们到底有什么不同呢?我来拿举个例子大家就清楚了

2、举例说明:我们拿第四组来当例子,现在我要将刚才的JS代码做一些修改,在后边用css方法添加背景色

3、给用append()方法的代码加css方法

(1)、JS代码:

$(document).click(function(){
    $(‘#div2‘).append( $(‘#b2‘) ).css(‘background‘,‘red‘);//在div2里面的最后面添加b2,并给返回来的jquery对象加背景色
})

(2)、图示:

4、给用appendTo()方法的代码加css方法

(1)、JS代码:

$(document).click(function(){
    $(‘#b2‘).appendTo( $(‘#div2‘) ).css(‘background‘,‘red‘);//把b2添加到div2里面的最后面,并给返回来的jquery对象加背景色
})

(2)、图示:

五、总结

通过上面的2张图,可以发现,通过append()与appendTo()方法虽然都可以进行添加节点的操作,但是他们返回的jquery对象是不同的,而我们有时候要对添加节点后返回的jquery对象进行后续操作,所以,我们在选择添加节点的方法的时候,要根据我们的实际需求来选择。(其他3组的也是同理,这里就不一一细说了)

时间: 2024-10-29 10:46:28

原生JS添加节点方法与JQuery添加节点方法的比较及总结的相关文章

JS添加节点方法与JQuery添加节点方法的比较及总结

原生JS添加节点方法与JQuery添加节点方法的比较及总结 一.首先构建一个简单布局,来供下边讲解使用 1.HTML部分代码: <div id="div1">div1</div> <div id="div2">div2 <span id="span1">span1</span> <span id="span2">span2</span> <

原生JS的使用,包括jquery和原生JS获取节点、jquery和原生JS修改属性的比较

一.前言 相比于JS这条直达终点.满是荆棘的小路,jquery无疑是康庄大道了,足够的简洁.易用给了它辉煌的地位.然而,毕竟是绕着道的插件,当小路走着走着变成大路的时候,曾经的大路也就失去了他自身的优势了. 原生JS虽然没有jquery那么的好用.便捷,或者说没有jquery那样让我们使用的如此顺手,甚至是无法舍弃的依赖.可是我们依然不得不扔掉手中这根陪伴我们多年的拐杖,我们不是瘸子,我们不曾腐朽,我们还可以独立前行. 二.正文 1. jquery和原生JS获取节点的比较 //这是HTML代码,

网站前端_Jquery-基础入门.0001.原生Js到后期封装库Jquery的过渡?

原生缺点: 1. JS的出现使得网页与用户之间实现了一种实时/动态/交互的关系,网页可以包含更多活跃的元素和精彩的内容 2. JS的弊端在于复杂的DOM对象,而JQuery封装了很多预定义的对象和使用函数简化了DOM操作,使得我们可以快速创建有高难度交互的富客户端页面,且兼容各大浏览器 简单介绍: 1. JQuery是一个优秀的JavaScript库,拥有强大的选择器,出色的DOM操作,可靠的事件处理,完善的兼容性和链式操作等功能,目前团队主要推核心库(JQuery)/UI(JQuery UI)

节点插入--对比jQuery和JavaScript方法(一)

二.插入元素: 1 <div> 2 <p>面朝大海,春暖花开</p> 3 </div> (一).jQuery方法 1.在节点内部插入: 方法 说明 append() 向每个匹配的元素内部追加内容 appendTo() 把所有的元素追加到另一个指定的元素集合中,实际上是颠倒了append()的用法.如$(A).append(B)与$(B).appendto(A)是等价的 prepend() 向每个匹配的元素内部前置内容 prependTo() 把所有匹配的元素

Query节点操作,jQuery插入节点,jQuery删除节点,jQuery Dom操作

一.创建节点 var box = $('<div>节点</div>'); //创建一个节点,或者var box = "<div>节点</div>"; $('body').append(box); //将节点插入到<body>元素内部 二.插入节点 jQuery 提供了好几种个方法来插入节点: 1.内部插入节点方法  方法名 描述 append(content) 向指定元素内部后面插入节点 content append(func

jQuery节点操作,jQuery插入节点,jQuery删除节点,jQuery Dom操作

一.创建节点 1 var box = $('<div>节点</div>'); //创建一个节点,或者var box = "<div>节点</div>"; 2 $('body').append(box); //将节点插入到<body>元素内部 二.插入节点jQuery 提供了好几种个方法来插入节点:1.内部插入节点方法  方法名 描述 append(content) 向指定元素内部后面插入节点 content append(fu

原生js的正负值处理以及添加回调函数

今天还是来说昨天的小例子,昨天实现的效果就是点击按钮"向前"即往前相反则往后,那么需要细化的几个问题就是:代码可以简化以及可以用一个变量来控制方向直接来看js: <script> //兼容不同浏览器获取行间样式 function getStyle ( obj, attr ) { return obj.currentStyle?obj.currentStyle[attr] : getComputedStyle( obj )[attr]; } window.onload=fun

原生JS与jQuery操作DOM有什么异同点?

本文和大家分享的主要是原生JS与jQuery操作DOM相关内容,一起来看看吧,希望对大家学习javascript有所帮助. 一.创建元素节点 1.1 原生 JS 创建元素节点 document.createElement("p"); 1.2 jQuery 创建元素节点 $('<p></p>');` 二.创建并添加文本节点 2.1 原生JS创建文本节点 document.createTextNode("Text Content"); 通常创建文

放弃jQuery,使用原生js吧!

转自:http://itakeo.com/blog/2015/07/28/nojq/ 随着IE6.7.8的逐渐淘汰,HTML5的兴起,以及侧重点放在了移动端,jQuery可能变的不在那么重要,原生一样很好用.下面介绍几个原生替换jq的方法. 获取元素 JQuery $('.xxx'); //class获取 $('#xxx'); //id获取 $('.xxx.ccc'); //同时包含xxx和ccc $('.xxx,.zzz'); //多选 $('.xxx div'); //子类 $('.xxx