1. 程式人生 > >深入了解jQuery之鏈式結構

深入了解jQuery之鏈式結構

先來 ret clas return == 所有 .... div tar

本文是在閱讀了Aaron艾倫的jQuery源碼解析(地址:http://www.imooc.com/learn/172)後的個人體會以及筆記。在這裏感謝艾倫老師深入淺出的講解!!

1 什麽是鏈式?

先來段代碼:

$(‘#level > a‘).click(function(){
            $(this).addClass(‘current‘).next().show().parent().siblings().children(‘a‘).removeClass(‘current‘).next().hide()
        })

  這段代碼的意思是: 當點擊id為level中的直屬a元素時,將所點擊的a元素添加一個current的class,將該a元素的下一個同級元素顯示出來,將這個同級元素的
父元素的所有同級元素的標簽為a 的子元素移除 current class,將每個a元素的下一個元素隱藏

這麽復雜的任務僅僅用了一行代碼就完成了,這就是鏈式的方便性!

2 為什麽jQuery能用鏈式?

  就拿上面的代碼來說吧,$(this).addClass(‘current).next() ,為什麽addClass()後面能直接使用next()?一切盡在源碼:

jQuery.fn.extend({
    addClass: function( value ) {
        //  省略...
return this; },

  看到了木有?addClass函數最後的一句:return this

  也就是,僅從對象上來說: $(this).addClass(‘current‘) === $(this)

技術分享 addClass詳細源碼

不僅是addClass() 像什麽 removeClass() show() hide()......都在結尾存在這麽一句: return this

  

深入了解jQuery之鏈式結構