最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery之end()和pushStack()使用介紹

 更新時間:2012年02月07日 00:15:23   作者:  
pushStack()方法在jQuery的DOM操作中被頻繁的使用, 如在parent(), find(), filter()中, 當然還有其他許多類似的方法, 它們往往需要返回一個jQuery封裝過的DOM結果集
但在我們自己寫jQuery代碼的時候,卻很少關注或使用過pushStack(). 如果我們需要寫個涉及DOM遍歷的插件,它就會顯得尤其有用.

在jQuery內部,pushStack()方法通過改變一個jQuery對象的prevObject屬性來"跟蹤"鏈式調用中前一個方法返回的DOM結果集(被jQuery封裝過,也是個jQuery對象,說是"跟蹤",是因為實際存儲的是個引用). 當我們再鏈式調用end()方法后, 內部就返回當前jQuery對象的prevObject. 具體更多細節(jié), 直接看源碼即可. 這里只做個簡單的分析, 直接來個例子:

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);

圖解:

了解這個之后, 我們來做一個grandparent插件,用來替代.parent().parent()這樣連續(xù)2次的調用,直接用.grandparent().如果"一不小心"沒考慮end()的話,代碼很可能就是這個樣子的:

復制代碼 代碼如下:

$.fn.grandparent = function() {
return this.parent().parent();
};

依舊用上面那個例子:

復制代碼 代碼如下:
$('#child').grandparent().end(); //jQuery-[div#parent]


很顯然, 大多數(shù)情況下這不是我們想要的, 事實上我們想通過鏈式調用end()直接返回到jquery[div#child]. 現(xiàn)在該是pushStack出馬的時候了,我們只要加上一行即可:

復制代碼 代碼如下:

$.fn.grandparent = function() {
var els = this.parent().parent();
return this.pushStack(els.get());
};

在pushStack內部, 把els.get()返回的DOM數(shù)組封裝成一個新的jQuery對象, 而this(jQuery[div#child])會賦值給之前新構建jQuery的prevObject, 最后返回新生的那個jQuery對象.

所以這次, 當我們再用end()就對了:
復制代碼 代碼如下:

var grandparent = $('#child').grandparent()./* jquery-[div#grandparent]*/.end() /*jquery-[div#child]*/

此博文內容的主體思想來自Learning JQuery中的一篇博客, 感謝該作者的分享. 感興趣的話, 點擊jQuery pushStack.

相關文章

  • jQuery實現(xiàn)簡單的DIV拖動效果

    jQuery實現(xiàn)簡單的DIV拖動效果

    這篇文章主要介紹了jQuery實現(xiàn)簡單的DIV拖動效果,涉及jQuery針對鼠標事件的響應及頁面元素的動態(tài)操作技巧,需要的朋友可以參考下
    2016-02-02
  • jQuery中clearQueue()方法用法實例

    jQuery中clearQueue()方法用法實例

    這篇文章主要介紹了jQuery中clearQueue()方法用法,實例分析了clearQueue()方法的功能、定義及進行清空隊列操作的技巧,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • 教你用jquery實現(xiàn)iframe自適應高度

    教你用jquery實現(xiàn)iframe自適應高度

    iframe因為能和網頁無縫的結合從而不刷新頁面的情況下更新頁面的部分數(shù)據(jù)成為可能,可是 iframe的大小卻不像層那樣可以“伸縮自如”,所以帶來了使用上的麻煩,給iframe設置高度的時候多了也不好,少了更是不行,今天我們就來分享2種使用jquery實現(xiàn)iframe自適應高度的代碼
    2014-06-06
  • 解決jquery1.9不支持browser對象的問題

    解決jquery1.9不支持browser對象的問題

    項目里面一直用的都是jquery1.9,不支持browser對象,百度一下,找到了解決方案在此與大家分享下,有遇到此問題的朋友不要錯過
    2013-11-11
  • jquery 頁眉單行信息滾動顯示實現(xiàn)思路及代碼

    jquery 頁眉單行信息滾動顯示實現(xiàn)思路及代碼

    將滾動的內容查詢出來,放在一個div 或者別的容器里面,具體的實現(xiàn)代碼如下
    2014-06-06
  • jquery選擇器的選擇使用及性能介紹

    jquery選擇器的選擇使用及性能介紹

    從這一講開始,我們將直正接觸一個JQ類庫,學習一下JQ的寫法,JQ的一些常用的命令等等,今天主要講的是JQ里的選擇器,這也是JQ的一大特點,這從它的名稱jQuery中可以看到,主要功力體現(xiàn)在查詢上
    2013-01-01
  • jQuery延遲執(zhí)行的實現(xiàn)方法

    jQuery延遲執(zhí)行的實現(xiàn)方法

    這篇文章主要介紹了jQuery延遲執(zhí)行的實現(xiàn)方法,結合簡單實例形式分析了jQuery針對無法同步執(zhí)行的情況使用延遲執(zhí)行的操作技巧,需要的朋友可以參考下
    2016-12-12
  • jQuery使用each遍歷循環(huán)的方法

    jQuery使用each遍歷循環(huán)的方法

    這篇文章主要介紹了jq 用each遍歷循環(huán)的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • jQuery CSS()方法改變現(xiàn)有的CSS樣式

    jQuery CSS()方法改變現(xiàn)有的CSS樣式

    css()方法在使用上具有多樣性。其中有一種可接受兩個輸入參數(shù):樣式屬性和樣式值,兩者之間用逗號分隔,下面通過實例為大家介紹下
    2014-08-08
  • jQuery回調函數(shù)的定義及用法實例

    jQuery回調函數(shù)的定義及用法實例

    這篇文章主要介紹了jQuery回調函數(shù)的定義及用法,以實例形式詳細分析了回調函數(shù)的原理與實現(xiàn)技巧,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12

最新評論

潜山县| 商水县| 股票| 买车| 博罗县| 蕉岭县| 房产| 布拖县| 杭州市| 通辽市| 拉萨市| 平阳县| 永仁县| 三明市| 泸州市| 济宁市| 肃宁县| 长宁县| 靖安县| 仁寿县| 舟曲县| 灵璧县| 泸定县| 景洪市| 梨树县| 淅川县| 哈巴河县| 资中县| 安化县| 尼木县| 中江县| 伊川县| 喀喇| 西乌珠穆沁旗| 昌乐县| 东宁县| 宜黄县| 乌恰县| 宁晋县| 河北区| 麦盖提县|