深入了解jQuery之鏈式結構
阿新 • • 發佈:2017-05-16
先來 ret clas return == 所有 .... div tar
addClass詳細源碼
本文是在閱讀了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() 像什麽 removeClass() show() hide()......都在結尾存在這麽一句: return this
深入了解jQuery之鏈式結構