jQuery之end()和pushStack()使用介紹
在jQuery內(nèi)部,pushStack()方法通過改變一個(gè)jQuery對(duì)象的prevObject屬性來"跟蹤"鏈?zhǔn)秸{(diào)用中前一個(gè)方法返回的DOM結(jié)果集(被jQuery封裝過,也是個(gè)jQuery對(duì)象,說是"跟蹤",是因?yàn)閷?shí)際存儲(chǔ)的是個(gè)引用). 當(dāng)我們?cè)冁準(zhǔn)秸{(diào)用end()方法后, 內(nèi)部就返回當(dāng)前jQuery對(duì)象的prevObject. 具體更多細(xì)節(jié), 直接看源碼即可. 這里只做個(gè)簡(jiǎn)單的分析, 直接來個(gè)例子:
html:
<div id="grandparent">
I am grandparent.
<div id="parent">
I am parent.
<div id="child">
I am child.
</div>
</div>
</div>
javascript:
var els = $('#child').parent().parent();
console.dir(els);
圖解:
$.fn.grandparent = function() {
return this.parent().parent();
};
依舊用上面那個(gè)例子:
很顯然, 大多數(shù)情況下這不是我們想要的, 事實(shí)上我們想通過鏈?zhǔn)秸{(diào)用end()直接返回到j(luò)query[div#child]. 現(xiàn)在該是pushStack出馬的時(shí)候了,我們只要加上一行即可:
$.fn.grandparent = function() {
var els = this.parent().parent();
return this.pushStack(els.get());
};
在pushStack內(nèi)部, 把els.get()返回的DOM數(shù)組封裝成一個(gè)新的jQuery對(duì)象, 而this(jQuery[div#child])會(huì)賦值給之前新構(gòu)建jQuery的prevObject, 最后返回新生的那個(gè)jQuery對(duì)象.
所以這次, 當(dāng)我們?cè)儆胑nd()就對(duì)了:
var grandparent = $('#child').grandparent()./* jquery-[div#grandparent]*/.end() /*jquery-[div#child]*/
此博文內(nèi)容的主體思想來自Learning JQuery中的一篇博客, 感謝該作者的分享. 感興趣的話, 點(diǎn)擊jQuery pushStack.
相關(guān)文章
基于jQuery實(shí)現(xiàn)帶動(dòng)畫效果超炫酷的彈出對(duì)話框(附源碼下載)
這是一款基于jQuery的彈出對(duì)話框插件,這個(gè)jQuery對(duì)話框插件的最大特點(diǎn)是彈出和關(guān)閉都帶有非常炫酷的動(dòng)畫特效,需要的朋友參考下吧2016-02-02jQuery學(xué)習(xí)筆記(3)--用jquery(插件)實(shí)現(xiàn)多選項(xiàng)卡功能
多選項(xiàng)卡功能的網(wǎng)站有很多,本人在那么多的類似插件中,目前碰到這個(gè)比較好,花了點(diǎn)時(shí)間調(diào)試出來了與大家分享,感興趣的朋友可以參考下哈希望對(duì)你有所幫助2013-04-04基于Jquery實(shí)現(xiàn)鍵盤按鍵監(jiān)聽
本文介紹下,用jquery實(shí)現(xiàn)的滑動(dòng)效果,以及對(duì)鍵盤按鍵進(jìn)行監(jiān)聽的例子,有需要的朋友,可以參考學(xué)習(xí)下2014-05-05jQuery在vs2008及js文件中的無(wú)智能提示的解決方法
我通過下面方法實(shí)現(xiàn)了jQuery在VS2008及js文件中的智能提示的,希望對(duì)朋友們有所幫助。2010-12-12關(guān)于juqery radio寫法的兼容性問題(新老版本jquery)
最近經(jīng)客戶反映,頁(yè)面某些效果無(wú)反應(yīng),經(jīng)查找,發(fā)現(xiàn)juqery的寫法有問題(jquery獲取radio值),主要是因?yàn)樾掳姹拘薷牧瞬糠謱?shí)現(xiàn)方式。2010-06-06jQuery層動(dòng)畫定位滑動(dòng)效果的方法
這篇文章主要介紹了jQuery層動(dòng)畫定位滑動(dòng)效果的方法,涉及jQuery中animate方法的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04使用jquery獲取網(wǎng)頁(yè)中圖片高度的兩種方法
使用jquery獲取網(wǎng)頁(yè)中圖片的高度其實(shí)很簡(jiǎn)單,目前有兩種不錯(cuò)的方法可以實(shí)現(xiàn),下面為大家詳細(xì)介紹下,有所疑惑的你可以參考下2013-09-09JQuery處理json與ajax返回JSON實(shí)例代碼
json數(shù)據(jù)是一種經(jīng)型的實(shí)時(shí)數(shù)據(jù)交互的數(shù)據(jù)存儲(chǔ)方法,使用到最多的應(yīng)該是ajax與json配合使用了,下面我來給大家介紹jquery處理json數(shù)據(jù)方法2014-01-01