$(“xxx”) 所有<xxx>標(biāo)簽的元素
$(“p#demo”) 所有id=”demo”的<p>元素
$(“p.style”) 所有class=”style”的<p>元素
$(“#demo”) 所有id=”demo”的元素
$(“.style”) 所有class=”style”的元素
$(“[href]”) 所有帶有href屬性的元素
$(“[href=’#’]”) 所有帶有href屬性且屬性值為”#”的元素
$(“[href!=’#’]”) 所有帶有href屬性且屬性值不為”#”的元素
$(“[href$=’.jpg’]”) 所有帶有href屬性且屬性值以”.jpg”結(jié)尾的元素
更多元素選取方法請(qǐng)查閱jQuery選擇器參考手冊(cè)。
如上,通過jQuery選取得到的HTML元素都是一組元素的集合,要獲取到其中具體的某一項(xiàng),可以使用eq(index)方法來獲得集合中索引號(hào)為index的jQuery對(duì)象,如:
[javascript] view plain copy$(“div”).eq(1).hide(); // 隱藏當(dāng)前頁(yè)面中第2個(gè)div元素若不獲取具體的元素項(xiàng)就調(diào)用相關(guān)的方法,則會(huì)對(duì)該集合中的所有元素都執(zhí)行該方法,如:
[Javascript] view plain copy$(“#demo”).hide(); // 隱藏當(dāng)前頁(yè)面中所有id=”demo”的元素需要注意的是eq方法獲得的是jQuery對(duì)象,不是DOM對(duì)象,它只能執(zhí)行jQuery的方法而不能調(diào)用DOM的方法。
普通的DOM對(duì)象可以通過$()轉(zhuǎn)化為jQuery對(duì)象,最常見的如:$(document)。轉(zhuǎn)化后的jQuery對(duì)象為只有一個(gè)元素的集合。
jQuery對(duì)象要轉(zhuǎn)化成DOM對(duì)象則需要用相關(guān)的方法從集合中取出特定的DOM對(duì)象,常見的方法有g(shù)et(index)和[index]兩種,如:
[javascript] view plain copy//獲取當(dāng)前頁(yè)面中的第1個(gè)div元素的DOM對(duì)象 $(“div”).get(0); $(“div”)[0]; $(“div”).eq(0)[0];特別需要注意的是,jQuery對(duì)象只能使用jQuery方法,DOM對(duì)象只能使用DOM方法。
jQuery只是一個(gè)JavaScript庫(kù)文件,所以當(dāng)需要使用jQuery之前首先需要引用這個(gè)庫(kù)文件。通??梢缘絡(luò)Query的官網(wǎng)下載一份放到本地。另外,Google和微軟也提供了在線的庫(kù)文件供開發(fā)者使用。
Google的引用地址:http://Ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js
微軟的引用地址:http://ajax.microsoft.com/ajax/jquery/jquery-1.7.min.js
當(dāng)jQuery更新的時(shí)候,上述兩個(gè)在線引用也會(huì)做出相應(yīng)的更新。所以,可以通過修改上述兩個(gè)地址中的版本號(hào)來引用其它版本的jQuery文件,如:
http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js是Google提供的1.4.0版本的JQuery文件;而前述分別是兩公司提供的1.7版本的jQuery文件。
為了防止在jQuery文件加載完成之前就開始執(zhí)行jQuery代碼,所有的jQuery代碼都必須寫到
[javascript] view plain copy$(document).ready(function() { // here });或
[javascript] view plain copy$(function() { ... });的函數(shù)體中,否則操作可能無效。
只有jQuery對(duì)象才能調(diào)用jQuery方法。有關(guān)jQuery的具體方法請(qǐng)參見下面的鏈接:
事件處理
動(dòng)畫效果
頁(yè)面元素操作
操作頁(yè)面元素的屬性
CSS操作
Ajax
遍歷集合
數(shù)據(jù)流和函數(shù)流的操作
DOM元素操作
以上參考資料均出自Vevb,版權(quán)與本人無關(guān)。
為了避免其它地方的命名沖突,如其它一些JS庫(kù)中也定義了$,jQuery提供了.noConflict()方法來將jQuery中$的職權(quán)讓渡給另一個(gè)標(biāo)識(shí)符,如:
[javascript] view plain copyjq.noConflict(); // 將$的職權(quán)讓渡給jq jq(“div”).hide(); // jq開始代替$之后$將變成普通的符號(hào)而不再具備之前它在jQuery中的功能。
在大體看過jQuery的語(yǔ)法和一些方法之后,我就覺得其實(shí)jQuery就是對(duì)JS和CSS操作DOM的封裝和簡(jiǎn)化。把過去JS和CSS需要許多語(yǔ)句才能實(shí)現(xiàn)的一些效果簡(jiǎn)化,典型的如hide()方法。但根本上,jQuery仍然是面向過程的,甚至很難在面向?qū)ο蟮膱?chǎng)合下使用它。原因就是常常需要jQuery對(duì)象和DOM對(duì)象之間的相互轉(zhuǎn)化。而事實(shí)上,在利用Canvas,甚至進(jìn)一步的WebGL上來說,個(gè)人感覺不太用得上jQuery的效果,而它的事件處理又顯得很死板,實(shí)際上跟直接寫DOM的事件處理沒有多大的區(qū)別。不過,它的Ajax處理倒是顯示非常的方便,只是常常會(huì)出現(xiàn)一些問題。
總的來說,jQuery正如它的初衷一樣,簡(jiǎn)化了許多JS和CSS的效果操作,使前臺(tái)開發(fā)者能夠簡(jiǎn)單甚至無腦地做出許多很炫的效果。但是,如果要搞個(gè)大工作,比如做個(gè)游戲,只用jQuery就有點(diǎn)捉襟見拙了。不過,這并不影響jQuery作為一個(gè)網(wǎng)頁(yè)效果工具的良好表現(xiàn)。大多數(shù)前臺(tái)頁(yè)面實(shí)際上也不需要大動(dòng)干戈地做特效,簡(jiǎn)單實(shí)用的效果或許對(duì)開發(fā)者和用戶都是最好的。
新聞熱點(diǎn)
疑難解答
圖片精選