一、after()和before()方法的區(qū)別

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括海州網(wǎng)站建設(shè)、海州網(wǎng)站制作、海州網(wǎng)頁制作以及海州網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,海州網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到海州省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
after()——其方法是將方法里面的參數(shù)添加到j(luò)query對象后面去;
如:A.after(B)的意思是將B放到A后面去;
before()——其方法是將方法里面的參數(shù)添加到j(luò)query對象前面去。
如:A.before(B)的意思是將A放到B前面去;
二、insertAfter()和insertBefore()的方法的區(qū)別
其實(shí)是將元素對調(diào)位置;
可以是頁面上已有元素;也可以是動態(tài)添加進(jìn)來的元素。
如:A.insertAfter(B);即將A元素調(diào)換到B元素后面;
如spanCC/spanpHELLO/p使用$("span").insertAfter($("p"))后,就變?yōu)閜HELLO/pspanCC/span了。兩者位置調(diào)換了
三、append()和appendTo()方法的區(qū)別
append()——其方法是將方法里面的參數(shù)添加到j(luò)query對象中來;
如:A.append(B)的意思是將B放到A中來,后面追加,A的子元素的最后一個位置;
appendTo()——其方法是將jquery對象添加到appendTo指定的參數(shù)中去。
如:A.appendTo(B)的意思是將A放到B中去,后面追加,B的子元素的最后一個位置;
四、prepend()和prependTo()方法的區(qū)別
append()——其方法是將方法里面的參數(shù)添加到j(luò)query對象中來;
如:A.append(B)的意思是將B放到A中來,插入到A的子元素的第一個位置;
appendTo()——其方法是將jquery對象添加到appendTo指定的參數(shù)中去。
如:A.appendTo(B)的意思是將A放到B中去,插入到B的子元素的第一個位置;
例子
1、insert局部方法
/**
* 在父級元素上操作DOM
* @param {Object} parent 父級元素,可以是element,也可以是Yquery對象
* @param {String} position 位置: beforebegin/afterbegin/beforeend/afterend
* @param {*} any 任何:string/text/object
* @param {Number} index 序號,如果大于0則復(fù)制節(jié)點(diǎn)
* @return {Undefined}
* @version 1.0
* 2013年12月2日17:08:26
*/
function _insert(parent, position, any, index) {
if ($.isFunction(any)) {
any = any.call(parent);
}
// 字符串
if ($.isString(any)) {
if (regTag.test(any)) {
parent.insertAdjacentHTML(position, any);
} else {
parent.insertAdjacentText(position, any);
}
}
// 數(shù)字
else if ($.isNumber(any)) {
parent.insertAdjacentText(position, any);
}
// 元素
else if ($.isElement(any)) {
parent.insertAdjacentElement(position, index 0 ? any.cloneNode(!0) : any);
}
// Yquery
else if (_isYquery(any)) {
any.each(function() {
_insert(parent, position, this);
});
}
}
2、append、prepend、before、after
$.fn = {
/**
* 追插
* 將元素后插到當(dāng)前元素(集合)內(nèi)
* @param {String/Element/Function} any
* @return this
* @version 1.0
* 2013年12月29日1:44:15
*/
append: function(any) {
return this.each(function(index) {
_insert(this, 'beforeend', any, index);
});
},
/**
* 補(bǔ)插
* 將元素前插到當(dāng)前元素(集合)內(nèi)
* @param {String/Element/Function} any
* @return this
* @version 1.0
* 2013年12月29日1:44:15
*/
prepend: function(any) {
return this.each(function(index) {
_insert(this, 'afterbegin', any, index);
});
},
/**
* 前插
* 將元素前插到當(dāng)前元素(集合)前
* @param {String/Element/Function} any
* @return this
* @version 1.0
* 2013年12月29日1:44:15
*/
before: function(any) {
return this.each(function(index) {
_insert(this, 'beforebegin', any, index);
});
},
/**
* 后插
* 將元素后插到當(dāng)前元素(集合)后
* @param {String/Element/Function} any
* @return this
* @version 1.0
* 2013年12月29日1:44:15
*/
after: function(any) {
return this.each(function(index) {
_insert(this, 'afterend', any, index);
});
}
};
3、prependTo、prependTo、insertBefore、insertAfter
這些帶后綴的與上面的不同的是,返回的結(jié)果不一樣。如:
$('#demo').append('a/');
// = 返回的是 $('#demo')
$('a/').appendTo($('#demo'));
// = 返回的是$('a');
因此兩者的關(guān)系只是返回結(jié)果不一樣,其他的都一樣,可以這么解決:
_each({
appendTo: 'append',
prependTo: 'prepend',
insertBefore: 'before',
insertAfter: 'after'
}, function(key, val) {
$.fn[key] = function(selector) {
this.each(function() {
$(selector)[val](this);
});
return this;
};
});
jquery的dom操作方法中,包括了after與insertAfter,這兩個方法名字相近,所實(shí)現(xiàn)的功能從名 字中不容易分辨,所以在經(jīng)過試驗(yàn)后撰文一篇以加深記憶。
測試代碼如下:
html
head
meta charset=”utf-8″
title 測試insertAfter與after的區(qū)別 /title
/head
body
ul
li class=”first”first/li
li class=”middle”middle/li
li class=”last”last/li
/ul
/body
/html
自然狀態(tài)下顯示是這樣的:
添加腳本:$(‘.first’).insertAfter($(‘.last’));
則會把first移到last后面去,變成了這樣:
如果把insertAfter方法換為after,效果則為:
從上述對比可以看出,其實(shí)這兩個方法的差別就像主語跟賓語的差別一樣,是主與從的問題。
after方法,是把參數(shù)元素移到調(diào)用方法的元素的后面,而insertAfter方法則恰恰相反,是把調(diào)用 方法的元素插入到參數(shù)元素的后面。
另外要注意的是,當(dāng)要用這兩個方法在dom樹中添加新元素時,如
”linew/li”,這樣的html字符串不能出現(xiàn)在after方法的調(diào)用主體或
insertAfter的參數(shù)中,因?yàn)檫@樣一來,jquery不知道要把新元素放到哪里去,反而會導(dǎo)致要相關(guān)的原 有元素丟失。
append 沒有empty的屬性啊。。。。 html(),才是把里面的內(nèi)容清空替換成你的內(nèi)容。append 是在被選元素里面的最后插入內(nèi)容。after是被選元素后插入內(nèi)容。 一個是里面的后面插(append) 一個是外面的后面插(after)。如果你非要清空那你直接empty()后在after就可以了
分享標(biāo)題:關(guān)于afterjQuery的信息
本文路徑:http://chinadenli.net/article23/dsedgcs.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、響應(yīng)式網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站營銷、微信公眾號、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)