針對初學(xué)者的jQuery入門指南
jQuery 是什么,它能為我們做什么?如果你是一名 Web 開發(fā)人員,寫過 JavaScript 程序,那么你很可能正在使用 jQuery,即使沒有試用過,至少也聽說過,事實(shí)上 jQuery 可以說是現(xiàn)階段最流行的 JavaScript 庫。據(jù)有關(guān)部門統(tǒng)計(jì),全球網(wǎng)站上面,約有 28% 的網(wǎng)站在使用 jQuery,這個(gè)數(shù)字可能有些夸張,但足見 jQuery 受歡迎的程度。本文僅對 jQuery 的使用方法作簡單介紹,且作為一個(gè)入門教程吧。
下載 jQuery 代碼,并在頁面中載入
首先需要從jQuery 官方網(wǎng)站 去下載最新的 jQuery 代碼,jQuery 官方提供兩個(gè)版本的,一個(gè)是經(jīng)過壓縮的,一個(gè)是沒有經(jīng)過壓縮的,如果你不打算閱讀或分析 jQuery 源代碼的話,那么建議下載壓縮過的版本,因?yàn)樗w積更小。下載完成后,在你的 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>
當(dāng)然,介于 jQuery 目前之流行程度,也有不少網(wǎng)站提供了在線的 jQuery API,例如 Google API,所以我們可以通過以下方法載入 jQuery:
jQuery 代碼如何執(zhí)行
學(xué)習(xí)編寫 jQuery 代碼,首先要接觸的就是 document ready 這個(gè)事件處理機(jī)制,幾乎你所有的 jQuery 代碼都要寫在這個(gè)事件里面。這個(gè)東西主要有兩個(gè)作用:
確保在網(wǎng)頁完全載入完成后,才執(zhí)行 jQuery 代碼。因?yàn)槿绻W(wǎng)頁中有 DOM 元素還未完全載入,那么用 jQuery 代碼去訪問或操作 DOM 元素的話會(huì)出錯(cuò)。
一定程度上將 jQuery 代碼和其它代碼區(qū)分開來。
代碼寫法一般如下:
<script type="text/javascript"> $(document).ready(function() { // 所有的 jQuery 代碼都寫在這里 }); </script>
使用 jQuery 選擇器選擇 DOM 元素
jQuery 里面封裝了一個(gè)函數(shù) $("") 讓我們在 HTML 文檔里面方便地選擇 DOM 元素,下面是幾個(gè)簡單的使用方法。
$("div"); // 選擇當(dāng)前 HTML 文檔中的所有 DIV 元素 $("#myElement"); // 選擇當(dāng)前 HTML 文檔中 ID 為 "myElement" 的元素 $(".myClass"); // 選擇當(dāng)前 HTML 文檔中 class 為 "myClass" 的元素 $("p#myElement"); // 選擇當(dāng)前 HTML 中 ID 為 "myElement" 的段落 P 標(biāo)簽元素 $("ul li a.navigation"); // 選擇列表元素中 class 為 "navigation" 的超鏈接
jQuery 支持幾乎所有的 CSS 選擇器方法
$("p > a"); // 選擇所有 P 標(biāo)簽中的超鏈接 A 元素 $("input[type=text]"); // 選擇 input 元素中 type 為 text 的元素 $("a:first"); // 選擇當(dāng)前頁面中的第一個(gè)超鏈接 A 元素 $("p:odd"); // 選擇當(dāng)前頁面中序數(shù)為奇數(shù)的段落 P 元素 $("li:first-child"); // 選擇列表中的第一個(gè)元素
jQuery 自身也定義了一些選擇器方法,下面是幾個(gè)例子:
$(":animated"); // 選擇所有正在執(zhí)行動(dòng)畫效果的元素 $(":button"); // 選擇所有按鈕元素 (input 或 button) $(":radio"); // 選擇所有單選框元素 $(":checkbox"); // 選擇所有復(fù)選框元素 $(":checked"); // 選擇所有已經(jīng)在 選定狀態(tài) 的單選框和復(fù)選框 $(":header"); // 選擇所有標(biāo)題元素 (h1, h2, h3, h4 ...)
操作和訪問 CSS 中的 class 名稱
利用 jQuery 可以為 DOM 元素添加、移除類名,并且使用起來相當(dāng)之方便。下面是幾個(gè)典型的使用方法:
$("div").addClass("content"); // 為所有 <div> 元素添加名為 "content" 的類 $("div").removeClass("content"); // 移除所有 <div> 元素中,名為 "content" 的類 $("div").toggleClass("content"); // 交替所有 <div> 元素中,名為 "content" 的類 (如果該元素中不存在這個(gè)類,則為它加上這個(gè)類;如存在,則移除之)
當(dāng)然,你也可以用 jQuery 來檢測一下某元素中是否正在使用某個(gè) class,代碼如下
if ($("#myElement").hasClass("content")) { alert("存在名為 content 的類!"); } else { alert("不存在名為 content 的類!"); }
用 jQuery 來操作 CSS 中的樣式
使用 jQuery 可以輕松的為 DOM元素添加 CSS 樣式,下面是幾個(gè)范例:
$("p").css("width", "400px"); // 為所有段落添加一個(gè)寬度 $("#myElement").css("color", "blue") // 將所有 ID 為 #myElement 的元素中文本顏色變?yōu)樗{(lán)色 $("ul").css("border", "solid 1px #ccc") // 為所有無序列表添加實(shí)線邊框,且邊框顏色為 #ccc
在網(wǎng)頁中添加、移除、追加 DOM 元素或內(nèi)容
jQuery 中同樣提供了好多種方法來操作 DOM 元素,例如改變操作標(biāo)簽中的文本。。。幾個(gè)例子如下:
var myElementHTML = $("#myElement").html(); // 獲取 ID 為 myElement 的元素中的所有內(nèi)容,包括文本和 HTML 標(biāo)簽 // 這種方法類似于傳統(tǒng) JavaScript 中的 innerHTML var myElementHTML = $("#myElement").text(); // 獲取 ID 為 myElement 的元素中的文本,僅包括文本,HTML 標(biāo)簽除外
類似以上兩種方法,還可以改變 DOM 元素中的 HTML 或文本:
$("#myElement").html("<p>This is the new content.</p>"); // #myElement 中的內(nèi)容將被這個(gè)段落替換掉 $("#myElement").text("This is the new content."); // #myElement 中的內(nèi)容將被這行文本替換掉
在元素內(nèi)追加內(nèi)容:
$("#myElement").append("<p>This is the new content.</p>"); // 保留標(biāo)簽內(nèi)原有內(nèi)容,并在末尾處追加新內(nèi)容
對于向元素上追加內(nèi)容,jQuery 還有其它幾種用法,如: appendTo(), prepend(), prependTo(), before(), insertBefore(), after(), insertAfter(),各有其特點(diǎn),但使用方法和 append() 類似。
jQuery 之事件處理
一些特定的事件處理程序可以用如下方法來實(shí)現(xiàn):
$("a").click(function() { // 可以在這里寫一些代碼 // 當(dāng)超鏈接被點(diǎn)擊的時(shí)候這里的代碼將被執(zhí)行 });
當(dāng)超鏈接被點(diǎn)擊的時(shí)候,function() 里面的代碼將被執(zhí)行。還有其它的一些事件使用方法也一樣,如:blur, focus, hover, keydown, load, mousemove, resize, scroll, submit, select。
用 jQuery 隱藏或顯示元素
jQuery 也可以非常方便地顯示或隱藏 DOM 元素,示例代碼如下:
$("#myElement").hide("slow", function() { // 這里可以寫一些代碼,當(dāng)元素被隱藏后,這里的代碼將被執(zhí)行 }); $("#myElement").show("fast", function() { // 這里可以寫一些代碼,當(dāng)元素被隱藏后,這里的代碼將被執(zhí)行 }); $("#myElement").toggle(1000, function() { // 這里可以寫一些代碼,當(dāng)元素被隱藏/顯示后,這里的代碼將被執(zhí)行 });
可以看到,當(dāng)元素顯示或隱藏的時(shí)候,是慢慢的漸漸變化的,這是因?yàn)樯厦嬗玫搅藥讉€(gè)速度參數(shù),如 slow,fast,除此之外還有 normal,數(shù)字 1000 表示毫秒數(shù),可以自定義。如果沒有設(shè)置速度參數(shù),那么元素將直接顯示或隱藏,一閃而過,沒有任何動(dòng)畫效果。后面的第二個(gè)參數(shù)是一個(gè) function,用來當(dāng)顯示/隱藏完畢后,再執(zhí)行一些需要的代碼,如果不需要,可省略此參數(shù)。
另外還有一種“漸隱漸顯”的方法,也是動(dòng)畫效果,使用方法如下:
$("#myElement").fadeOut("slow", function() { // 這里的代碼在 fade out 完成后執(zhí)行 }); $("#myElement").fadeIn("slow", function() { // 這里的代碼在 fade in 完成后執(zhí)行 });
調(diào)整元素的透明度:
$("#myElement").fadeTo(2000, 0.4, function() { // 這里的代碼在在調(diào)整透明度完成后執(zhí)行 }); 其中第一個(gè)參數(shù)是仍然是速度參數(shù),第二個(gè)參數(shù)是透明度,但三個(gè)參數(shù)是一個(gè)匿名回調(diào)函數(shù),當(dāng)漸變完成后執(zhí)行。 jQuery 之動(dòng)畫效果 jQuery 可以為 DOM 元素添加上下滑動(dòng)效果: $("#myElement").slideDown("fast", function() { // ....... }); $("#myElement").slideUp("slow", function() { // ....... }); $("#myElement").slideToggle(1000, function() { // ....... });
jQuery 的動(dòng)畫效果還可以應(yīng)用在改變 DOM 元素樣式的時(shí)候,使改變樣式的過程以平滑過渡的方式進(jìn)行,而且可以選擇需要速度,示例如下:
$("#myElement").animate({ opacity: 0.3, width: "500px", height: "700px" }, 1000, function() { // ...... });
總的來說,jQuery 的動(dòng)畫效果很強(qiáng)大,但是也有其怪癖(例如要改變顏色的話,可能需要其它特定的插件)。jQuery 還有其它許多動(dòng)畫效果需要不斷地去深入學(xué)習(xí)和挖掘。
相關(guān)文章
jquery實(shí)現(xiàn)頁面圖片等比例放大縮小功能
本文將利用jquery實(shí)現(xiàn)頁面圖片等比例放大和縮小。說明: 頁面中經(jīng)常需要將未知大小的圖片展示在有限的空間里, 如果直接指定圖片的width和height值, 就有可能造成圖片走樣, 這段代碼就是為解決這個(gè)問題設(shè)計(jì)2014-02-02jQuery實(shí)現(xiàn)自動(dòng)與手動(dòng)切換的滾動(dòng)新聞特效代碼分享
這篇文章主要介紹了jQuery實(shí)現(xiàn)列表自動(dòng)循環(huán)滾動(dòng)手動(dòng)滾動(dòng)展示新聞,推薦給大家,有需要的小伙伴可以參考下。2015-08-08jQuery插件實(shí)現(xiàn)表格隔行變色及鼠標(biāo)滑過高亮顯示效果代碼
這篇文章主要介紹了jQuery插件實(shí)現(xiàn)表格隔行變色及鼠標(biāo)滑過高亮顯示效果代碼,涉及jQuery針對頁面元素動(dòng)態(tài)操作及響應(yīng)鼠標(biāo)事件動(dòng)態(tài)修改頁面元素樣式的相關(guān)技巧,需要的朋友可以參考下2016-02-02jquery.uploadify插件在chrome瀏覽器頻繁崩潰解決方法
這篇文章主要介紹了jquery.uploadify插件在chrome瀏覽器頻繁崩潰解決方法,十分的實(shí)用,遇到相同問題,需要解決的朋友可以參考下2015-03-03jQuery遮罩層實(shí)現(xiàn)方法實(shí)例詳解(附遮罩層插件)
這篇文章主要介紹了jQuery遮罩層實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了jQuery遮罩層樣式及功能實(shí)現(xiàn)技巧,并附帶分析了一個(gè)簡單jQuery遮罩層插件實(shí)現(xiàn)方法,需要的朋友可以參考下2015-12-12JQuery slideshow的一個(gè)小問題(如何發(fā)現(xiàn)及解決過程)
在做一個(gè)網(wǎng)頁homepage的時(shí)候,想用slideshow[1]做圖片切換效果,在打開頁面所以的正常測試都沒問題:當(dāng)瀏覽器同時(shí)打開多個(gè)tab,停留他tab中的頁面一段時(shí)間后,會(huì)出現(xiàn)圖片是最后一張圖片,針對這個(gè)問題,本文給予了詳細(xì)的解決方法,感興趣的朋友可以了解下2013-02-02jQuery實(shí)現(xiàn)的點(diǎn)擊按鈕改變樣式功能示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)的點(diǎn)擊按鈕改變樣式功能,涉及jQuery基于事件響應(yīng)的頁面元素樣式動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-07-07