版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
jQuery常用函數(shù)和技巧/art/201006/205042.htm
2010-06-1109:19
司馬牽牛譯
51CTO.com
我要評論(10)文章將為讀者講述一些優(yōu)秀的實現(xiàn)方法和技巧,正確地使用這些方法和技巧就能夠充分利用這一框架為我們所提供的所有優(yōu)點?!?1CTO獨家特稿】現(xiàn)在使用jQuery的網(wǎng)站數(shù)不勝數(shù),它能夠成為成最為知名的JavaScript框架,肯定存在著某種原因。作為開發(fā)者,我們必須更深入地思考問題,應(yīng)該能夠使用每一種我們想要了解的語言和框架所具有最高級技巧。高級選擇器(selector)在jQuery中,我們可以使用各種各樣的選擇器,這使得選擇器的使用變得非常精確。51CTO也曾經(jīng)和讀者分享過jQuery選擇器深入分析:避免不必要的調(diào)用,下面我們來一步一步地講解這些選擇器并看看在其他語境中如何使用這些選擇器?;趯傩缘倪x擇器在HTML中,幾乎所有元素都具有屬性,比如:<img
src=""
alt=""
width=""
height=""
border="0"
/>
<input
type="text"
name="email"
value=""
size="80"
/>
上面兩個HMTL元素中包含了九個屬性。利用jQuery,我們可以根據(jù)元素的屬性和屬性值來對元素進行選擇。一起看看以下例子中的選擇器:$(document).ready(function(){
//Alltheimageswhosewidthis600px
$("img[width=600]").click(function(){
alert("You'vejustselectedanimagewhosewidthis600px");
});
//Alltheimageshavingawidthdifferentto600px
$("img[width!=600]").click(function(){
alert("You'vejustselectedanimagewhosewidthisnot600px");
});
//Alltheinputswhosenameendswith'email'
$("input[name$='email']").focus(function(){
alert("Thisinputhasanamewhichendswith'email'.");
});
});
在官方文檔中,我們可以看到許多選擇器與上例中的選擇器非常類似。但關(guān)鍵點是一樣的,屬性和屬性值。多重選擇器如果你開放的是一個較為大型的網(wǎng)站,選擇器的使用會變得困難。有時為了讓代碼變得更為簡單,最好將它們分割為兩個或三個選擇器。實際上這是非常簡單和基礎(chǔ)的知識,不過非常有用,我們應(yīng)該把這些知識熟記于心。$(document).ready(function(){
//Alltheimageswhosewidthis600pxORheightis400px
$("img[width=600],img[height=400]").click(function(){
alert("Selectedanimagewhosewidthis600pxORheightis400px");
});
//Allpelementswithclassorange_text,divsandimages.
$("p.orange_text,div,img").hover(function(){
alert("Selectedapelementwithclassorange_text,adivORanimage.");
});
//Wecanalsocombinetheattributesselectors
//Allthejpgimageswithanaltattribute(thealt'svaluedoesn'tmatter)
$("img[alt][src$='.jpg']").click(function(){
alert("Youselectedajpgimagewiththealtattribute.");
});
});
Widget組件選擇器除了插件的選擇器之前,還有一些基于元素某些屬性或位置的選擇器。下面讓我們看看這些更為重要的選擇器:$(document).ready(function(){
//Allthehiddenimagesareshown
$("img:hidden").show();
//Thefirstpisgoingtobeorange
$("p:first").css("color","orange");
//Inputwithtypepassword
//thisis$("input[type='password']")
$("input:password").focus(function(){
alert("Thisisapassword!");
});
//Divswithparagraph
$("div:has(p)").css("color","green");
//Wecanalsocombinethem.with()
//Allnotdisabledcheckboxes
$("input:checkbox(:not(:disabled))").hover(function(){
alert("Thischeckboxisworking.");
});
});
如上例所示,可供使用的選擇器是多種多樣的,并且它們之前不是互相獨立的,所以我們可以將這些選擇器組合起來進行使用,如上例中的選擇器。理解網(wǎng)站的結(jié)構(gòu)網(wǎng)絡(luò)的結(jié)構(gòu)可能看起來非常復(fù)雜,但事實上并非如此,如果我們想要使用某些選擇器以及作用于網(wǎng)絡(luò)結(jié)構(gòu)之上的方法。我們可以將網(wǎng)站視為一個顛倒的樹,樹根在頂部,而其他元素從根部延伸出來。查看下面的代碼,試著想象一棵樹,樹根是body標(biāo)簽。<html
xmlns="/1999/xhtml">
<head>...</head>
<body>
<div
id="wrapper">
<div
id="main">
<h1>CreateanAccount!</h1>
<form
id="myform"
action="#"
method="post">
<legend>PersonalInformation</legend>
<input
type="text"
name="email_address"
value="EmailAddress"/>
<input
type="checkbox"
name="checking"
value=""/>
</form>
<p>Message</p>
</div><!--Endmain-->
</div><!--Endwrapper-->
<div
id="footer">
<p>Footermessage</p>
</div><!--Endfooter-->
</body>
</html>
以上示例代碼的樹形圖如下:很簡單,是不是?從現(xiàn)在開始我們可以將html或xhtml看做一棵樹,不過我們想做的是程序員,這些植物學(xué)的理論有什么用處?答案就在下一個要點之中。對樹進行選擇和轉(zhuǎn)換選擇就想樹一樣,網(wǎng)站結(jié)構(gòu)中葉存在子與父。在jQuery中,我們可以利用這一結(jié)構(gòu)。假設(shè)我們擁有相同的html,但是現(xiàn)在我們想要選擇名為“main”的div中的p元素,但是不想對任何有關(guān)p元素的東西造成變化。我們有三種可能的方案,如下:$("#wrapper").children('#main').children('p').css("color","orange");
$("#wrapper").children().children('p').css("color","orange");
$("#main").children('p').css("color","orange");
利用children方法可以選擇樹中位于其他元素下的某個元素。如果我們傳遞給它一個選擇器,該方法將僅選擇我們需要的元素,如果不是這樣,父元素的所有子元素都將被選中。讓我們看看第一個和第二個選擇器直接的區(qū)別。唯一的不同之處在于:第二個選擇器中我們什么也沒有指定,所有每一個子元素都會被選中。此處的關(guān)鍵在于:在上圖中wrapper這個div元素下除main之外并沒有其他子元素,所以我們得到的結(jié)果是一樣的。添加元素現(xiàn)在我們在樹中添加元素。這個元素可以是段落、div元素、表格等等,假設(shè)我們想要添加一個列表,如下:<ul>
<li>Dog</li>
<li>Cat</li>
<li>Frog</li>
</ul>
只是一些字符串,所以我們可以在JavaScript代碼中這樣寫:var
list=
"<ul>\n"
+
"<li>Dog</li>\n"
+
"<li>Cat</li>\n"
+
"<li>Frog</li>\n"
"</ul>";
現(xiàn)在我們要在html中某個地方添加字符串。比如,在之前我們選擇的p元素之后。最后我們可以輸入完整的代碼,如下所示:$(document).ready(function(){
var
list=
"<ul>\n"
+
"<li>Dog</li>\n"
+
"<li>Cat</li>\n"
+
"<li>Frog</li>\n"
"</ul>";
$("#wrapper").children('#main').append(list);
});
字面上我們將字符串附加到HTML中的</p>,結(jié)果是這個列表顯示在p元素之后。移除元素移除元素并不難,當(dāng)我們談到對樹進行轉(zhuǎn)換時,在這一過程一定會涉及元素的移除。下面我們來移除之前選擇的那個段落(注意我們可以再次使用選擇器)。$("#wrapper").children('#main').children('p').remove();
在這一代碼中,位于選中元素之中的所有元素都將被移除,所以必須十分小心。如果div下有一個列表,當(dāng)我們移除該div時,div和列表都會被移除。表面之下jQuery類似只露出一角的冰山,在水面之下還有更多內(nèi)容。這一小結(jié)中,我們將向你展示某些表面之下的內(nèi)容。綁定(Bind)綁定是一種方法,利用它,我們可以將一個事件(鼠標(biāo)點擊、懸置等等)與一個方法連接起來。這有點類似:當(dāng)用戶單擊此處時,調(diào)用該方法。聽起來很熟悉,對嗎?沒錯,我們經(jīng)常這樣做??纯匆韵率纠?(document).ready(function(){
$("#id").click(function(){
alert("Thatclickwasamazing!");
});
});
上文中click()方法在以下代碼相對于wrapper:$(document).ready(function(){
$('#id').bind('click',
function
(){
alert("Thatclickwasamazing!");
});
});
此外,使用unbind()方法可以解除事件與元素的連接。定義你自己的jQuery方法目前我們看到了一些方法,如click、bind、hover等等,但是我們?nèi)绾味x自己的方法?如何使用$(’selector’).mymethod()這樣的語句調(diào)用這些方法?以下代碼提供了這些問題的解決方案。定義一個方法,顯示一個元素的值。//ThenamewillbealertVal
jQuery.fn.alertVal=
function(){
var
element=$(this[0]);
//That'sourelement
if
(element.val())
alert(element.val());
//That'sourelement'svalue
};
//Thisisthewaywecanuseit
$("selector").alertVal();
回調(diào)(callback)是常用的解決方案使用回調(diào),我們可以在其他方法完
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)四年級下班主任工作計劃范文
- 教師教學(xué)工作計劃范文五篇
- 三年級上學(xué)期語文教學(xué)計劃合集5篇
- 心理工作計劃
- 2022年高中德育工作計劃
- 高中數(shù)學(xué)教學(xué)工作計劃模板匯編五篇
- 2022高考滿分作文寫酒
- 銀行主任競聘演講稿三篇
- 下學(xué)期工作計劃
- 2022國慶節(jié)創(chuàng)意活動方案流程策劃
- 英語演講技巧與實訓(xùn)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 智慧水產(chǎn)養(yǎng)殖解決方案10.9
- 《預(yù)防未成年人犯罪》課件(圖文)
- 2024-2030年全球及中國環(huán)境健康與安全(EHS)行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報告
- 2024年浙江省能源集團應(yīng)屆生招聘高頻難、易錯點500題模擬試題附帶答案詳解
- 材料工程管理人員個人年終工作總結(jié)范文
- 黑龍江金融服務(wù)支持中俄貿(mào)易的現(xiàn)狀、不足和展望
- 福建省公路水運工程試驗檢測費用參考指標(biāo)
- (小學(xué)組)全國版圖知識競賽考試題含答案
- 四種“類碰撞”典型模型研究(講義)(解析版)-2025年高考物理一輪復(fù)習(xí)(新教材新高考)
- 2024年新人教版七年級上冊數(shù)學(xué)教學(xué)課件 第六章 幾何圖形初步 綜合與實踐 設(shè)計學(xué)校田徑運動會比賽場地
評論
0/150
提交評論