jQuery學(xué)習(xí)之DOM節(jié)點(diǎn)的插入方法總結(jié)
本文主要總結(jié)了jQuery中DOM節(jié)點(diǎn)的插入方法,以及各種方法的注意點(diǎn),下面話不多說,來看看詳細(xì)的介紹吧。
一、內(nèi)部插入append()與appendTo()
- append:這個操作與對指定的元素執(zhí)行原生的appendChild方法,將它們添加到文檔中的情況類似。
- appendTo:實(shí)際上,使用這個方法是顛倒了常規(guī)的
$(A).append(B)
的操作,即不是把B追加到A中,而是把A追加到B中。
append()
和appendTo()
兩種方法功能相同,主要的不同是語法——內(nèi)容和目標(biāo)的位置不同,append()
前面是要選擇的對象,后面是要在對象內(nèi)插入的元素內(nèi)容,appendTo()
前面是要插入的元素內(nèi)容,而后面是要選擇的對象。
$("#bt1").on('click', function() { //.append(), 選擇表達(dá)式在函數(shù)的前面, //參數(shù)是將要插入的內(nèi)容。 $(".content").append('<div class="append">通過append方法添加的元素</div>') }) $("#bt2").on('click', function() { //.appendTo()剛好相反,內(nèi)容在方法前面, //無論是一個選擇器表達(dá)式 或創(chuàng)建作為標(biāo)記上的標(biāo)記 //它都將被插入到目標(biāo)容器的末尾。 $('<div class="appendTo">通過appendTo方法添加的元素</div>').appendTo($(".content")) })
二、內(nèi)部插入prepend()與prependTo()
在元素內(nèi)部進(jìn)行操作的方法,除了在被選元素的結(jié)尾(仍然在內(nèi)部)通過append與appendTo插入指定內(nèi)容外,相應(yīng)的還可以在被選元素之前插入,jQuery提供的方法是prepend與prependTo
.prepend()
方法將指定元素插入到匹配元素里面作為它的第一個子元素 (如果要作為最后一個子元素插入用.append())
..prepend()
和.prependTo()
實(shí)現(xiàn)同樣的功能,主要的不同是語法,插入的內(nèi)容和目標(biāo)的位置不同- 對于
.prepend()
而言,選擇器表達(dá)式寫在方法的前面,作為待插入內(nèi)容的容器,將要被插入的內(nèi)容作為方法的參數(shù) - 而
.prependTo()
正好相反,將要被插入的內(nèi)容寫在方法的前面,可以是選擇器表達(dá)式或動態(tài)創(chuàng)建的標(biāo)記,待插入內(nèi)容的容器作為參數(shù)。
$("#bt1").on('click', function() { //找到class="aaron1"的div節(jié)點(diǎn),然后通過prepend在內(nèi)部的首位置添加一個新的p節(jié)點(diǎn) $('.aaron1').prepend('<p>prepend增加的p元素</p>') }) $("#bt2").on('click', function() { //找到class="aaron2"的div節(jié)點(diǎn),然后通過prependTo內(nèi)部的首位置添加一個新的p節(jié)點(diǎn) $('<p>prependTo增加的p元素</p>').prependTo($('.aaron2')) })
這里總結(jié)下內(nèi)部操作四個方法的區(qū)別:
append()
向每個匹配的元素內(nèi)部追加內(nèi)容prepend()
向每個匹配的元素內(nèi)部前置內(nèi)容appendTo()
把所有匹配的元素追加到另一個指定元素的集合中prependTo()
把所有匹配的元素前置到另一個指定的元素集合中
三、外部插入after()與before()
節(jié)點(diǎn)與節(jié)點(diǎn)之前有各種關(guān)系,除了父子,祖輩關(guān)系,還可以是兄弟關(guān)系。之前我們在處理節(jié)點(diǎn)插入的時候,接觸到了內(nèi)部插入的幾個方法,這節(jié)我們開始講外部插入的處理,也就是兄弟之間的關(guān)系處理,這里jQuery引入了2個方法,可以用來在匹配I的元素前后插入內(nèi)容。
- before與after都是用來對相對選中元素外部增加相鄰的兄弟節(jié)點(diǎn)
- 2個方法都是都可以接收HTML字符串,DOM 元素,元素?cái)?shù)組,或者jQuery對象,用來插入到集合中每個匹配元素的前面或者后面
- 2個方法都支持多個參數(shù)傳遞after(div1,div2,....) 可以參考右邊案例代碼
注意點(diǎn):
after向元素的后邊添加html代碼,如果元素后面有元素了,那將后面的元素后移,然后將html代碼插入,before向元素的前邊添加html代碼,如果元素前面有元素了,那將前面的元素前移,然后將html代碼插。
$("#bt1").on('click', function() { //在匹配test1元素集合中的每個元素前面插入p元素 $(".test1").before('<p style="color:red">before,在匹配元素之前增加</p>', '<p style="color:red">多參數(shù)</p>') }) $("#bt2").on('click', function() { //在匹配test1元素集合中的每個元素后面插入p元素 $(".test2").after('<p style="color:blue">after,在匹配元素之后增加</p>', '<p style="color:blue">多參數(shù)</p>') })
四、外部插入insertAfter()與insertBefore()
與內(nèi)部插入處理一樣,jQuery由于內(nèi)容目標(biāo)的位置不同,然增加了2個新的方法insertAfter與insertBefore
.before()
和.insertBefore()
實(shí)現(xiàn)同樣的功能。主要的區(qū)別是語法——內(nèi)容和目標(biāo)的位置。 對于before()
選擇表達(dá)式在函數(shù)前面,內(nèi)容作為參數(shù),而.insertBefore()
剛好相反,內(nèi)容在方法前面,它將被放在參數(shù)里元素的前面.after()
和.insertAfter()
實(shí)現(xiàn)同樣的功能。主要的不同是語法——特別是(插入)內(nèi)容和目標(biāo)的位置。 對于after()選擇表達(dá)式在函數(shù)的前面,參數(shù)是將要插入的內(nèi)容。對于.insertAfter()
, 剛好相反,內(nèi)容在方法前面,它將被放在參數(shù)里元素的后面- before、after與insertBefore。insertAfter的除了目標(biāo)與位置的不同外,后面的不支持多參數(shù)處理
注意事項(xiàng):
- insertAfter將JQuery封裝好的元素插入到指定元素的后面,如果元素后面有元素了,那將后面的元素后移,然后將JQuery對象插入;
- insertBefore將JQuery封裝好的元素插入到指定元素的前面,如果元素前面有元素了,那將前面的元素前移,然后將JQuery對象插入;
$("#bt1").on('click', function() { //在test1元素前后插入集合中每個匹配的元素,不支持多參數(shù) $('<p style="color:red">測試insertBefore方法增加</p>', '<p style="color:red">多參數(shù)</p>').insertBefore($(".test1")) }) $("#bt2").on('click', function() { //在test2元素前后插入集合中每個匹配的元素,不支持多參數(shù) $('<p style="color:red">測試insertAfter方法增加</p>', '<p style="color:red">多參數(shù)</p>').insertAfter($(".test2")) })
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
- jQuery移動和復(fù)制dom節(jié)點(diǎn)實(shí)用DOM操作案例
- jQuery的DOM操作之刪除節(jié)點(diǎn)示例
- JQuery創(chuàng)建DOM節(jié)點(diǎn)的方法
- JQuery插入DOM節(jié)點(diǎn)的方法
- JQuery遍歷DOM節(jié)點(diǎn)的方法
- JQuery查找DOM節(jié)點(diǎn)的方法
- js和jquery對dom節(jié)點(diǎn)的操作(創(chuàng)建/追加)
- JQuery刪除DOM節(jié)點(diǎn)的方法
- jQuery DOM插入節(jié)點(diǎn)操作指南
- JQuery包裹DOM節(jié)點(diǎn)的方法
相關(guān)文章
解決jquery插件:TypeError:$.browser is undefined報(bào)錯的方法
這篇文章為大家分享了一個解決jquery插件:TypeError:$.browser is undefined報(bào)錯的方法,解決報(bào)錯問題的方法也很簡單,需要解決此類問題的朋友不要錯過這篇文章。2015-11-11Jquery的Tabs內(nèi)容輪換效果實(shí)現(xiàn)代碼,幾行搞定
本篇文章主要是對Jquery的Tabs內(nèi)容輪換效果的實(shí)現(xiàn)代碼進(jìn)行了介紹。幾行代碼輕松搞定2014-02-02jquery實(shí)現(xiàn)企業(yè)定位式導(dǎo)航效果
這篇文章主要介紹了jquery實(shí)現(xiàn)企業(yè)定位式導(dǎo)航效果2018-01-01JQuery擴(kuò)展插件Validate—4設(shè)置錯誤提示的樣式
JQuery擴(kuò)展插件Validate—4設(shè)置錯誤提示的樣式,使用Validate的朋友可以參考下。2011-09-09jqueryMobile 動態(tài)添加元素,展示刷新視圖的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猨queryMobile 動態(tài)添加元素,展示刷新視圖的實(shí)現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05