先來段代碼:ide
$('#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元素的下一個元素隱藏函數
這麼複雜的任務僅僅用了一行代碼就完成了,這就是鏈式的方便性!this
就拿上面的代碼來講吧,$(this).addClass('current).next() ,爲何addClass()後面能直接使用next()?一切盡在源碼:對象
jQuery.fn.extend({ addClass: function( value ) { // 省略...
return this; },
看到了木有?addClass函數最後的一句:return this rem
也就是,僅從對象上來講: $(this).addClass('current') === $(this)get
不只是addClass() 像什麼 removeClass() show() hide()......都在結尾存在這麼一句: return this源碼