jQuery 是什麼?輕量 JavaScript 函式庫的前世今生
jQuery 是一個快速、輕量且功能豐富的 JavaScript 函式庫。它透過可在多種瀏覽器上運行、易於使用的 API,讓 HTML 文件的遍歷與操作、事件處理、動畫與 Ajax 都變得更加簡單。憑藉多功能性與可擴展性的結合,jQuery 改變了數百萬人編寫 JavaScript 的方式,最重要的是,它是免費的。

如上所述,jQuery 本來就是使用 JavaScript 改寫出來的,因此 jQuery 和 JavaScript 兩者是可以並存、相輔相成的。只要是 JavaScript 能做到的事,jQuery 就一定做得到,不只做得到,還能做得更好更快速;但如果是 JavaScript 做不到的事,jQuery 也一樣做不到。
jQuery 特色
jQuery 之所以受歡迎,是因為它提供了一系列簡單方便而且相容性良好的操作,省去開發人員的部份煩惱。
| 特色 | 說明 |
|---|---|
| 輕量級 | gzip 壓縮後甚至能小於 30KB。 |
| 語法簡潔 | 把常用的 JavaScript 實作打包起來,寫法比原生簡便許多。 |
| 瀏覽器相容性 | 相容現在主流的瀏覽器,開發者不必再為各家瀏覽器各寫一套。 |
| 鏈式操作 | 對同一個對象的多個操作可以連寫在一行程式碼裡。 |
| 選取器 | 可直接沿用 CSS 選取器的規則來選取與操作 DOM。 |
| Ajax | 大幅簡化非同步的資料存取操作。 |
輕量級
jQuery 是輕量的 JavaScript 函式庫,gzip 壓縮後,甚至能小於 30KB。若專案用不到 Ajax 與動畫,還可以改用只留核心的精簡版,詳見 如何取得 jQuery 。
語法簡潔
將常用的 JavaScript 實作打包,因此比原生的寫法簡便許多。原生要先 選取 DOM 再逐一設定屬性的流程,在 jQuery 裡往往一行就結束了。
瀏覽器相容性
jQuery 基本上相容了現在主流的瀏覽器,讓開發者不必再為了瀏覽器的相容問題,去建立各別瀏覽器的相容函式庫。
鏈式操作方式
jQuery 的鏈式操作,可以把同一個對象的多個操作連寫在一行程式碼裡。
// 選一次元素,接著連續做三件事
$('#Dom').addClass('active').css('color', '#fff').fadeIn(400);選取器
開發者可以使用 CSS 選取器 以及 jQuery 自訂的選取器,進行 DOM 的選取與操作,寫法請見 jQuery 的語法構成 。
Ajax
jQuery 簡化了非同步的操作,向伺服器要資料不必自己處理繁瑣的 XMLHttpRequest 流程。
擴充功能
jQuery UI
jQuery UI 是建立在 jQuery 函式庫上的套件工具,無論是建立互動的應用程式,還是僅僅利用一個彈窗加上日期選擇的操作介面,jQuery UI 都是不錯的選擇。
jQuery Mobile
jQuery Mobile 是用於行動裝置網頁應用的前端框架。
接下來讀什麼
建議依這個順序往下讀:先知道 如何取得 jQuery 並正確引入到網頁,接著認識 語法構成 ,就能開始動手操作 事件 與 DOM 了。
常見問題
jQuery 和 JavaScript 是同一種東西嗎?
不是。JavaScript 是語言本身,jQuery 則是用 JavaScript 寫出來的函式庫。JavaScript 做得到的事 jQuery 都做得到,而且通常寫得更短;反過來說,JavaScript 做不到的事,jQuery 也一樣做不到。
jQuery 有多大?會拖慢網頁嗎?
3.x 的壓縮版 gzip 後大約 30KB 以內。若專案沒有用到 Ajax 與動畫效果,還可以改用 精簡版(slim) 進一步減少體積。
什麼是鏈式操作?
jQuery 的方法大多會回傳同一個物件,因此可以把多個操作接在同一行,例如:$('#Dom').addClass('active').fadeIn(),不必每次都重新選取一次元素。
現在還需要學 jQuery 嗎?
新專案多半直接用原生 JavaScript 或前端框架,但大量既有網站與外掛仍以 jQuery 撰寫,維護時看得懂、改得動仍然重要。學過 原生 DOM 操作 之後再看 jQuery,會覺得相當直觀。
jQuery UI 和 jQuery Mobile 是什麼?
兩者都是建立在 jQuery 之上的擴充套件。jQuery UI 提供日期選擇、拖曳、對話框等互動元件;jQuery Mobile 則是針對行動裝置網頁的前端框架。
延伸閱讀
參考資料:jQuery 官方網站