jQuery 是什么,它能為我們做什么?如果你是一名 Web 開發人員,寫過 JavaScript 程序,那么你很可能正在使用 jQuery,即使沒有試用過,至少也聽說過,事實上 jQuery 可以說是現階段最流行的 JavaScript 庫。據有關部門統計,全球網站上面,約有 28% 的網站在使用 jQuery,這個數字可能有些夸張,但足見 jQuery 受歡迎的程度。本文僅對 jQuery 的使用方法作簡單介紹,且作為一個入門教程吧。
下載 jQuery 代碼,并在頁面中載入
首先需要從jQuery 官方網站 去下載最新的 jQuery 代碼,jQuery 官方提供兩個版本的,一個是經過壓縮的,一個是沒有經過壓縮的,如果你不打算閱讀或分析 jQuery 源代碼的話,那么建議下載壓縮過的版本,因為它體積更小。下載完成后,在你的 HTML 代碼中載入,載入方法如下:
<html> <head> <title>jQuery tutorial</title> <script type="text/javascript" src="jquery-1.4.4.min.js"></script> </head> <body> jQuery tutorial </body></html>
當然,介于 jQuery 目前之流行程度,也有不少網站提供了在線的 jQuery API,例如 Google API,所以我們可以通過以下方法載入 jQuery:
學習編寫 jQuery 代碼,首先要接觸的就是 document ready 這個事件處理機制,幾乎你所有的 jQuery 代碼都要寫在這個事件里面。這個東西主要有兩個作用:
確保在網頁完全載入完成后,才執行 jQuery 代碼。因為如果網頁中有 DOM 元素還未完全載入,那么用 jQuery 代碼去訪問或操作 DOM 元素的話會出錯。
一定程度上將 jQuery 代碼和其它代碼區分開來。
代碼寫法一般如下:
<script type="text/javascript">$(document).ready(function() { // 所有的 jQuery 代碼都寫在這里});</script>
使用 jQuery 選擇器選擇 DOM 元素
jQuery 里面封裝了一個函數 $("") 讓我們在 HTML 文檔里面方便地選擇 DOM 元素,下面是幾個簡單的使用方法。
$("div"); // 選擇當前 HTML 文檔中的所有 DIV 元素$("#myElement"); // 選擇當前 HTML 文檔中 ID 為 "myElement" 的元素$(".myClass"); // 選擇當前 HTML 文檔中 class 為 "myClass" 的元素$("p#myElement"); // 選擇當前 HTML 中 ID 為 "myElement" 的段落 P 標簽元素$("ul li a.navigation"); // 選擇列表元素中 class 為 "navigation" 的超鏈接
jQuery 支持幾乎所有的 CSS 選擇器方法
$("p > a"); // 選擇所有 P 標簽中的超鏈接 A 元素$("input[type=text]"); // 選擇 input 元素中 type 為 text 的元素$("a:first"); // 選擇當前頁面中的第一個超鏈接 A 元素$("p:odd"); // 選擇當前頁面中序數為奇數的段落 P 元素$("li:first-child"); // 選擇列表中的第一個元素
jQuery 自身也定義了一些選擇器方法,下面是幾個例子:
$(":animated"); // 選擇所有正在執行動畫效果的元素$(":button"); // 選擇所有按鈕元素 (input 或 button)$(":radio"); // 選擇所有單選框元素$(":checkbox"); // 選擇所有復選框元素$(":checked"); // 選擇所有已經在 選定狀態 的單選框和復選框$(":header"); // 選擇所有標題元素 (h1, h2, h3, h4 ...)
操作和訪問 CSS 中的 class 名稱
利用 jQuery 可以為 DOM 元素添加、移除類名,并且使用起來相當之方便。下面是幾個典型的使用方法:
$("div").addClass("content"); // 為所有 <div> 元素添加名為 "content" 的類$("div").removeClass("content"); // 移除所有 <div> 元素中,名為 "content" 的類$("div").toggleClass("content"); // 交替所有 <div> 元素中,名為 "content" 的類 (如果該元素中不存在這個類,則為它加上這個類;如存在,則移除之)
當然,你也可以用 jQuery 來檢測一下某元素中是否正在使用某個 class,代碼如下
if ($("#myElement").hasClass("content")) { alert("存在名為 content 的類!");}else { alert("不存在名為 content 的類!");}
用 jQuery 來操作 CSS 中的樣式
使用 jQuery 可以輕松的為 DOM元素添加 CSS 樣式,下面是幾個范例:
$("p").css("width", "400px"); // 為所有段落添加一個寬度$("#myElement").css("color", "blue") // 將所有 ID 為 #myElement 的元素中文本顏色變為藍色$("ul").css("border", "solid 1px #ccc") // 為所有無序列表添加實線邊框,且邊框顏色為 #ccc
在網頁中添加、移除、追加 DOM 元素或內容
jQuery 中同樣提供了好多種方法來操作 DOM 元素,例如改變操作標簽中的文本。。。幾個例子如下:
var myElementHTML = $("#myElement").html();// 獲取 ID 為 myElement 的元素中的所有內容,包括文本和 HTML 標簽// 這種方法類似于傳統 JavaScript 中的 innerHTMLvar myElementHTML = $("#myElement").text();// 獲取 ID 為 myElement 的元素中的文本,僅包括文本,HTML 標簽除外
類似以上兩種方法,還可以改變 DOM 元素中的 HTML 或文本:
$("#myElement").html("<p>This is the new content.</p>");// #myElement 中的內容將被這個段落替換掉$("#myElement").text("This is the new content.");// #myElement 中的內容將被這行文本替換掉
在元素內追加內容:
$("#myElement").append("<p>This is the new content.</p>");// 保留標簽內原有內容,并在末尾處追加新內容
對于向元素上追加內容,jQuery 還有其它幾種用法,如: appendTo(), prepend(), prependTo(), before(), insertBefore(), after(), insertAfter(),各有其特點,但使用方法和 append() 類似。
jQuery 之事件處理
一些特定的事件處理程序可以用如下方法來實現:
$("a").click(function() { // 可以在這里寫一些代碼 // 當超鏈接被點擊的時候這里的代碼將被執行});
當超鏈接被點擊的時候,function() 里面的代碼將被執行。還有其它的一些事件使用方法也一樣,如:blur, focus, hover, keydown, load, mousemove, resize, scroll, submit, select。
用 jQuery 隱藏或顯示元素
jQuery 也可以非常方便地顯示或隱藏 DOM 元素,示例代碼如下:
$("#myElement").hide("slow", function() { // 這里可以寫一些代碼,當元素被隱藏后,這里的代碼將被執行});$("#myElement").show("fast", function() { // 這里可以寫一些代碼,當元素被隱藏后,這里的代碼將被執行});$("#myElement").toggle(1000, function() { // 這里可以寫一些代碼,當元素被隱藏/顯示后,這里的代碼將被執行});
可以看到,當元素顯示或隱藏的時候,是慢慢的漸漸變化的,這是因為上面用到了幾個速度參數,如 slow,fast,除此之外還有 normal,數字 1000 表示毫秒數,可以自定義。如果沒有設置速度參數,那么元素將直接顯示或隱藏,一閃而過,沒有任何動畫效果。后面的第二個參數是一個 function,用來當顯示/隱藏完畢后,再執行一些需要的代碼,如果不需要,可省略此參數。
另外還有一種“漸隱漸顯”的方法,也是動畫效果,使用方法如下:
$("#myElement").fadeOut("slow", function() { // 這里的代碼在 fade out 完成后執行});$("#myElement").fadeIn("slow", function() { // 這里的代碼在 fade in 完成后執行});
調整元素的透明度:
$("#myElement").fadeTo(2000, 0.4, function() { // 這里的代碼在在調整透明度完成后執行});其中第一個參數是仍然是速度參數,第二個參數是透明度,但三個參數是一個匿名回調函數,當漸變完成后執行。jQuery 之動畫效果jQuery 可以為 DOM 元素添加上下滑動效果:$("#myElement").slideDown("fast", function() { // .......});$("#myElement").slideUp("slow", function() { // .......});$("#myElement").slideToggle(1000, function() { // .......});
jQuery 的動畫效果還可以應用在改變 DOM 元素樣式的時候,使改變樣式的過程以平滑過渡的方式進行,而且可以選擇需要速度,示例如下:
$("#myElement").animate({ opacity: 0.3, width: "500px", height: "700px" }, 1000, function() { // ......});
總的來說,jQuery 的動畫效果很強大,但是也有其怪癖(例如要改變顏色的話,可能需要其它特定的插件)。jQuery 還有其它許多動畫效果需要不斷地去深入學習和挖掘。
新聞熱點
疑難解答