Introduction
本系列文章不是介紹基礎jQuery語法。關於jQuery基礎教程,可以參考W3School的jQuery教程。
目前大部分程式設計師對於jQuery的使用還停留在1.x版本上,本系列文章將介紹目前最新的jQuery3.x。
jQuery是什麼?
提到jQuery,就不得不提JavaScript,JavaScript曾經和VBScript一樣,作為瀏覽器指令碼語言使用,在那個標準匱乏的年代,一度瀕臨死亡。不過好在Ajax的出現,大大改善了網頁的使用者體驗,同時也拯救了JavaScript。
而今天JavaScript不僅打敗了同時期的VBScript,成為前端指令碼語言的霸主,甚至出現了Node.js這種用JavaScript實現的後端伺服器,效能完爆Apache, 甚至不輸給Nginx,前幾年甚至成為了github上的最熱門的專案之一。
言歸正傳,jQuery是什麼呢?簡單來說,就是一個JavaScript的三方庫,用於簡化瀏覽器端的指令碼程式設計。
jQuery能做的事實際上不僅僅是簡化指令碼程式設計,使用jQuery可以縮小HTML檔案的體積,可以讓Ajax互動更簡單,甚至可以避免因瀏覽器相容性導致的問題(IE瀏覽器在這個問題上簡直是大坑)。
記住jQuery的哲學:Write less, do more.(寫的更少,做的更多)
一個jQuery的Demo
在沒有jQuery以前,為了知道哪一個選擇框被選中,你的程式碼可能是這麼寫的:
var value;
var radioGroup = document.getElementsByTagName(`radioGroup`);
for (var i = 0; i < radioGroup.length; i++) {
if (radioGroup[i].type === `radio` && radioGroup[i].name === `jQuery` && radioGroup[i].checked) {
value = radioGroup[i].value;
break;
}
}
而有了jQuery,你只需要:
var value = jQuery(`input:radioGroup[name="jQuery"]:checked`).val();
是不是簡潔了很多?
jQuery版本
jQuery可以在jQuery CDN下載,下面給出不同瀏覽器對jQuery版本的支援程度:
瀏覽器 | jQuery 1 | jQuery 2 | jQuery 3 | jQuery Compat 3 |
---|---|---|---|---|
IE | 6+ | 9+ | 9+ | 8+ |
Chrome | 支援 | 支援 | 支援 | 支援 |
Firefox | 支援 | 支援 | 支援 | 支援 |
Safari | 5.1+ | 5.1+ | 7.0+ | 7.0+ |
Opera | 支援 | 支援 | 支援 | 支援 |
iOS | 6.1+ | 6.1+ | 7.0+ | 7.0+ |
Android 2.x | 2.3 | 2.3 | 2.3 | 2.3 |
Android 4.x | 4.0+ | 4.0+ | 4.0+ | 4.0+ |
IE挺坑的,對吧?下面來介紹下jQuery的版本:
-
jQuery 1
這個版本是相容性最強的,但是由於出生在戰火紛飛的年代,體積和效能並不太好,尤其是參與了瀏覽器相容性大戰,導致很多的trick。 -
jQuery 2
誕生於2013年4月,和平年代的產物,開始側重現代瀏覽器的優化,但是由於犧牲了IE的相容性,大部分程式設計師不會使用。 -
jQuery 3
誕生於2014年12月,jQuery Foundation一看,大家怎麼還在用jQuery 1啊?那麼就拆除兩個版本吧,jQuery 3,適用於現代瀏覽器,jQuery Compat 3,適用於歷史瀏覽器(其實就是老IE)。
當然,jQuery 3優於jQuery 2,jQuery Compat 3優於jQuery 1。
經過jQuery Foundation這麼一折騰,其實程式設計師更迷惑了,那到底用哪個版本啊?
其實可以根據你的應用場景來選擇:
-
企業內部:必須jQuery 3啊,為了證明我們是前衛的程式設計師。什麼?瀏覽器不相容?IT去看看,幫他裝個瀏覽器。
-
企業外部:必須jQuery 1啊,吸引客戶,誰知道客戶用的是什麼作業系統,什麼瀏覽器。
-
非IE使用者:jQuery 3吧,對於用IE的使用者,給他掛個banner:請不要使用IE瀏覽器。
-
手機客戶端:可以jQuery 3了,用iOS的誰不換新的?
-
歷史網站維護:jQuery 1吧,誰知道用的三方庫裡面有沒有坑。