jQuery是JavaScript世界中使用最廣泛的一個(gè)庫jQuery只是一個(gè)jquery-xxx.js文件,jQuery這么流行,因?yàn)樗鉀Q了一些很重要的問題,實(shí)際上,jQuery能幫我們做這些事情:
- 消除瀏覽器差異:你不需要自己寫冗長的代碼來針對不同的瀏覽器來綁定事件,編寫AJAX等代碼;
- 簡單的DOM的方法: 寫 $('#test')肯定比document.getElmentById('test')來的簡潔;
- 輕松實(shí)現(xiàn)動(dòng)畫,修改CSS等各種操作
jQuery的理念'Write Less, Do More',讓你寫更少的代碼,完成更多的工作!
jQuery版本
目前jQuery由1.x和2.x兩個(gè)主要版本,區(qū)別在于2.x移除了對古老的IE6\7\8的支持,因此2.x的代碼更精簡,選擇哪個(gè)版本主要取決于你是否想支持IE6~8
從jQuery官網(wǎng)可以下載最新版本,jQuery只是一個(gè)jquery-xxx.js文件,但你會(huì)看到有compressed(已壓縮)和未壓縮uncompressed兩種版本
使用時(shí)完全一樣,但如果想深入研究jQuery源碼,那就用未壓縮版
使用jQuery
使用jQuery只需要在頁面的head引入jQuery文件即可
$符號(hào)
$是著名的jQuery符號(hào),實(shí)際上,jQuery把所有的功能全部封裝在一個(gè)全局變量jQuery中,而$也是一個(gè)合法的變量名,它是變量jQuery的別名:
window.jquery;// jQuery(selector, context)
window.$;// jQuery(selector, context)
$ === jQuery; //true
typeof($);//function
$本質(zhì)上是一個(gè)函數(shù),但是函數(shù)也是對象,于是$除了可以直接調(diào)用,也可以有很多其他屬性
注意:你看到的$函數(shù)名可能不是jQuery(selector, context),因?yàn)楹芏郕avaScript壓縮工具可以對函數(shù)名和參數(shù)改名,所以壓縮過的jQuery源碼$函數(shù)可能變成a(b,c)
絕大多數(shù)時(shí)候,我們都直接用$因?yàn)閷懫饋砀唵?但是如果$這個(gè)變量不幸被占用了,而且還不能改變,那我們就只能讓jQuery把$變量交出來,然后就只能使用jQuery這個(gè)變量:
$;// jQuery(selector, context)
jQuery.noConflict();
$;// undefined
jQuery; // jQuery(selector, context)
這種黑魔法的原理是jQuery在占用$之前,先在內(nèi)部保存了原來的$,調(diào)用jQuery.noConflict()時(shí)會(huì)把原來保存的變量還原。