国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一些應(yīng)該熟記于心的jQuery函數(shù)和技巧

原創(chuàng)
開發(fā) 開發(fā)工具 前端
文章將為讀者講述一些優(yōu)秀的實(shí)現(xiàn)方法和技巧,正確地使用這些方法和技巧就能夠充分利用這一框架為我們所提供的所有優(yōu)點(diǎn)。

【51CTO獨(dú)家特稿】現(xiàn)在使用jQuery的網(wǎng)站數(shù)不勝數(shù),它能夠成為成最為知名的JavaScript框架,肯定存在著某種原因。作為開發(fā)者,我們必須更深入地思考問題,應(yīng)該能夠使用每一種我們想要了解的語言和框架所具有***級(jí)技巧。

關(guān)于jQuery更多內(nèi)容,歡迎訪問: jQuery從入門到精通

高級(jí)選擇器(selector)

在jQuery中,我們可以使用各種各樣的選擇器,這使得選擇器的使用變得非常精確。51CTO也曾經(jīng)和讀者分享過jQuery選擇器深入分析:避免不必要的調(diào)用,下面我們來一步一步地講解這些選擇器并看看在其他語境中如何使用這些選擇器。

基于屬性的選擇器

在HTML中,幾乎所有元素都具有屬性,比如:

  1. <img src="" alt="" width="" height="" border="0" /> 
  2. <input type="text" name="email" value="" size="80" /> 

上面兩個(gè)HMTL元素中包含了九個(gè)屬性。利用jQuery,我們可以根據(jù)元素的屬性和屬性值來對(duì)元素進(jìn)行選擇。一起看看以下例子中的選擇器:

  1. $(document).ready(function(){  
  2.  
  3.     //Alltheimageswhosewidthis600px  
  4.  
  5.     $("img[width=600]").click(function(){  
  6.  
  7.        alert("You'vejustselectedanimagewhosewidthis600px");  
  8.  
  9.     });  
  10.  
  11.   //Alltheimageshavingawidthdifferentto600px  
  12.  
  13.     $("img[width!=600]").click(function(){  
  14.  
  15.         alert("You'vejustselectedanimagewhosewidthisnot600px");  
  16.  
  17.     });  
  18.  
  19.  //Alltheinputswhosenameendswith'email'  
  20.  
  21.     $("input[name$='email']").focus(function(){  
  22.  
  23.        alert("Thisinputhasanamewhichendswith'email'.");  
  24.  
  25.     });  
  26.  
  27. }); 

在官方文檔中,我們可以看到許多選擇器與上例中的選擇器非常類似。但關(guān)鍵點(diǎn)是一樣的,屬性和屬性值。

多重選擇器

如果你開放的是一個(gè)較為大型的網(wǎng)站,選擇器的使用會(huì)變得困難。有時(shí)為了讓代碼變得更為簡(jiǎn)單,***將它們分割為兩個(gè)或三個(gè)選擇器。實(shí)際上這是非常簡(jiǎn)單和基礎(chǔ)的知識(shí),不過非常有用,我們應(yīng)該把這些知識(shí)熟記于心。

  1. $(document).ready(function(){  
  2.  
  3.     //Alltheimageswhosewidthis600pxORheightis400px  
  4.  
  5.     $("img[width=600],img[height=400]").click(function(){  
  6.  
  7.        alert("Selectedanimagewhosewidthis600pxORheightis400px");  
  8.  
  9.     });  
  10.  
  11.  //Allpelementswithclassorange_text,divsandimages.  
  12.  
  13.     $("p.orange_text,div,img").hover(function(){  
  14.  
  15.         alert("Selectedapelementwithclassorange_text,adivORanimage.");  
  16.  
  17.     });   
  18.  
  19. //Wecanalsocombinetheattributesselectors  
  20.  
  21.     //Allthejpgimageswithanaltattribute(thealt'svaluedoesn'tmatter)  
  22.  
  23.     $("img[alt][src$='.jpg']").click(function(){  
  24.  
  25.        alert("Youselectedajpgimagewiththealtattribute.");  
  26.  
  27.     });  
  28.  
  29. }); 

#p#

Widget組件選擇器

除了插件的選擇器之前,還有一些基于元素某些屬性或位置的選擇器。下面讓我們看看這些更為重要的選擇器:

  1. $(document).ready(function(){  
  2.  
  3.     //Allthehiddenimagesareshown  
  4.  
  5.     $("img:hidden").show();         
  6.  
  7. //Thefirstpisgoingtobeorange  
  8.  
  9.     $("p:first").css("color","orange");  
  10.  
  11.  //Inputwithtypepassword  
  12.  
  13.     //thisis$("input[type='password']")  
  14.  
  15.     $("input:password").focus(function(){  
  16.  
  17.        alert("Thisisapassword!");  
  18.  
  19.     });                    
  20.  
  21. //Divswithparagraph  
  22.  
  23.     $("div:has(p)").css("color","green");  
  24.  
  25. //Wecanalsocombinethem.with()  
  26.  
  27.     //Allnotdisabledcheckboxes  
  28.  
  29.     $("input:checkbox(:not(:disabled))").hover(function(){  
  30.  
  31.        alert("Thischeckboxisworking.");  
  32.  
  33.     });   
  34.  
  35.  }); 

如上例所示,可供使用的選擇器是多種多樣的,并且它們之前不是互相獨(dú)立的,所以我們可以將這些選擇器組合起來進(jìn)行使用,如上例中的選擇器。

理解網(wǎng)站的結(jié)構(gòu)

網(wǎng)絡(luò)的結(jié)構(gòu)可能看起來非常復(fù)雜,但事實(shí)上并非如此,如果我們想要使用某些選擇器以及作用于網(wǎng)絡(luò)結(jié)構(gòu)之上的方法。我們可以將網(wǎng)站視為一個(gè)顛倒的樹,樹根在頂部,而其他元素從根部延伸出來。查看下面的代碼,試著想象一棵樹,樹根是body標(biāo)簽。

  1. <html xmlns="http://www.w3.org/1999/xhtml"> 
  2. <head>...</head> 
  3. <body> 
  4.  
  5.     <div id="wrapper"> 
  6.  
  7.         <div id="main"> 
  8.  
  9.             <h1>CreateanAccount!</h1> 
  10.  
  11.             <form id="myform" action="#" method="post"> 
  12.  
  13.                 <legend>PersonalInformation</legend> 
  14.  
  15.                 <input type="text" name="email_address" value="EmailAddress"/> 
  16.  
  17.                 <input type="checkbox" name="checking" value=""/> 
  18.  
  19.             </form> 
  20.  
  21.             <p>Message</p> 
  22.  
  23.         </div><!--Endmain--> 
  24.  
  25.     </div><!--Endwrapper--> 
  26.  
  27.     <div id="footer"> 
  28.  
  29.         <p>Footermessage</p> 
  30.  
  31.     </div><!--Endfooter--> 
  32.  
  33. </body> 
  34. </html> 

以上示例代碼的樹形圖如下:

以上示例代碼的樹形圖

很簡(jiǎn)單,是不是?從現(xiàn)在開始我們可以將html或xhtml看做一棵樹,不過我們想做的是程序員,這些植物學(xué)的理論有什么用處?答案就在下一個(gè)要點(diǎn)之中。

#p#

對(duì)樹進(jìn)行選擇和轉(zhuǎn)換

選擇

就想樹一樣,網(wǎng)站結(jié)構(gòu)中葉存在子與父。在jQuery中,我們可以利用這一結(jié)構(gòu)。假設(shè)我們擁有相同的html,但是現(xiàn)在我們想要選擇名為“main”的div中的p元素,但是不想對(duì)任何有關(guān)p元素的東西造成變化。

對(duì)樹進(jìn)行選擇和轉(zhuǎn)換

我們有三種可能的方案,如下:

  1. $("#wrapper").children('#main').children('p').css("color","orange");  
  2. $("#wrapper").children().children('p').css("color","orange");  
  3. $("#main").children('p').css("color","orange"); 

利用children方法可以選擇樹中位于其他元素下的某個(gè)元素。如果我們傳遞給它一個(gè)選擇器,該方法將僅選擇我們需要的元素,如果不是這樣,父元素的所有子元素都將被選中。讓我們看看***個(gè)和第二個(gè)選擇器直接的區(qū)別。

唯一的不同之處在于:第二個(gè)選擇器中我們什么也沒有指定,所有每一個(gè)子元素都會(huì)被選中。此處的關(guān)鍵在于:在上圖中wrapper這個(gè)div元素下除main之外并沒有其他子元素,所以我們得到的結(jié)果是一樣的。

添加元素

現(xiàn)在我們?cè)跇渲刑砑釉亍_@個(gè)元素可以是段落、div元素、表格等等,假設(shè)我們想要添加一個(gè)列表,如下:

  1. <ul> 
  2.  
  3.     <li>Dog</li> 
  4.  
  5.     <li>Cat</li> 
  6.  
  7.     <li>Frog</li> 
  8.  
  9. </ul> 

只是一些字符串,所以我們可以在JavaScript代碼中這樣寫:

  1. var list"<ul>\n" 
  2.  
  3.             + "<li>Dog</li>\n"  
  4.  
  5.             + "<li>Cat</li>\n"  
  6.  
  7.             + "<li>Frog</li>\n"  
  8.  
  9.             "</ul>"; 

現(xiàn)在我們要在html中某個(gè)地方添加字符串。比如,在之前我們選擇的p元素之后。

添加字符串

***我們可以輸入完整的代碼,如下所示:

  1. $(document).ready(function(){  
  2.  
  3.     var list"<ul>\n" 
  4.  
  5.                 + "<li>Dog</li>\n"  
  6.  
  7.                 + "<li>Cat</li>\n"  
  8.  
  9.                 + "<li>Frog</li>\n"  
  10.  
  11.                 "</ul>";         
  12.  
  13. $("#wrapper").children('#main').append(list);  
  14.  
  15. }); 

字面上我們將字符串附加到HTML中的</p>,結(jié)果是這個(gè)列表顯示在p元素之后。

移除元素

移除元素并不難,當(dāng)我們談到對(duì)樹進(jìn)行轉(zhuǎn)換時(shí),在這一過程一定會(huì)涉及元素的移除。下面我們來移除之前選擇的那個(gè)段落(注意我們可以再次使用選擇器)。

  1. $("#wrapper").children('#main').children('p').remove(); 
  2.  

在這一代碼中,位于選中元素之中的所有元素都將被移除,所以必須十分小心。如果div下有一個(gè)列表,當(dāng)我們移除該div時(shí),div和列表都會(huì)被移除。

表面之下

jQuery類似只露出一角的冰山,在水面之下還有更多內(nèi)容。這一小結(jié)中,我們將向你展示某些表面之下的內(nèi)容。

綁定(Bind)

綁定是一種方法,利用它,我們可以將一個(gè)事件(鼠標(biāo)點(diǎn)擊、懸置等等)與一個(gè)方法連接起來。這有點(diǎn)類似:當(dāng)用戶單擊此處時(shí),調(diào)用該方法。聽起來很熟悉,對(duì)嗎?沒錯(cuò),我們經(jīng)常這樣做。看看以下示例:

  1. $(document).ready(function(){  
  2.  
  3.    $("#id").click(function(){  
  4.  
  5.      alert("Thatclickwasamazing!");  
  6.  
  7.    });  
  8.  
  9. }); 

上文中click()方法在以下代碼相對(duì)于wrapper:

  1. $(document).ready(function(){  
  2.  
  3.   $('#id').bind('click', function (){  
  4.  
  5.     alert("Thatclickwasamazing!");  
  6.  
  7.   });  
  8.  
  9. }); 

此外,使用unbind()方法可以解除事件與元素的連接。

#p#

定義你自己的jQuery方法

目前我們看到了一些方法,如click、bind、hover等等,但是我們?nèi)绾味x自己的方法?如何使用$(’selector’).mymethod()這樣的語句調(diào)用這些方法?以下代碼提供了這些問題的解決方案。定義一個(gè)方法,顯示一個(gè)元素的值。

  1. //ThenamewillbealertVal  
  2. jQuery.fn.alertValfunction(){  
  3.  
  4.     var element=$(this[0]); //That'sourelement  
  5.  
  6.     if (element.val())  
  7.  
  8.         alert(element.val()); //That'sourelement'svalue  
  9.  
  10. };  
  11. //Thisisthewaywecanuseit  
  12. $("selector").alertVal(); 

回調(diào)(callback)是常用的解決方案

使用回調(diào),我們可以在其他方法完成時(shí)執(zhí)行某個(gè)方法。你可以將回調(diào)方法看做對(duì)別人說:但你做完時(shí),給我電話,因?yàn)槲乙鑫业哪欠莨ぷ鳌2贿^現(xiàn)在的問題是:如何使用回調(diào)?

  1. $(document).ready(function(){  
  2.  
  3.     myCallBackfunction(){  
  4.  
  5.         alert("I'macallbackalert.");  
  6.  
  7.     }     
  8.  
  9. //WhenthegetfinishesthenmyCallBackisexecuted  
  10.  
  11.   $.get('myhtmlpage.html',myCallBack);  
  12.  
  13. }); 

注意:如果該函數(shù)包含參數(shù),我們必須使用以下方式:

  1. $(document).ready(function(){  
  2.  
  3.   $.get('myhtmlpage.html',function(){  
  4.  
  5.     myCallBack(param1,param2);  
  6.  
  7.   });  
  8.  
  9. }); 

結(jié)論

本文只是介紹一些技巧,能夠讓你更好的理解有關(guān)jQuery的知識(shí)。當(dāng)然,還有許多技巧比本文所講的內(nèi)容更為高級(jí),但你可以將本文看做一名優(yōu)秀的jQuery開發(fā)者邁出的***步,同時(shí)關(guān)于jQuery,51CTO推薦閱讀:你應(yīng)該學(xué)習(xí)jQuery的七大理由。另外,jQuery提供了一些不錯(cuò)的文檔,請(qǐng)單擊以下鏈接:

OfficialDocumentation

LearningjQuery(agoodblogtolearnjQuery)

【編輯推薦】

  1. 你應(yīng)該學(xué)習(xí)jQuery的七大理由
  2. 了解jQuery技巧來提高你的代碼質(zhì)量
  3. jQuery 1.4十大新特性解讀及代碼示例
  4. jQuery另類視角:動(dòng)態(tài)擴(kuò)展對(duì)象
  5. 10個(gè)自由豐富的jQuery或JavaScript編輯器
責(zé)任編輯:王曉東 來源: 51CTO.com
相關(guān)推薦

2012-05-21 10:13:05

XCode調(diào)試技巧

2013-03-29 13:17:53

XCode調(diào)試技巧iOS開發(fā)

2011-06-01 16:50:21

JAVA

2021-06-18 07:35:46

Java接口應(yīng)用

2021-10-12 23:10:58

UnsafeJavaJDK

2011-05-23 18:06:24

站內(nèi)優(yōu)化SEO

2011-10-26 20:55:43

ssh 安全

2011-07-12 09:47:53

WebService

2022-12-02 14:58:27

JavaScript技巧編程

2018-08-10 10:45:35

編程語言Python程序員

2023-10-07 16:20:34

JavaAPI

2022-02-17 13:58:38

Linux技巧文件

2017-09-20 15:07:32

數(shù)據(jù)庫SQL注入技巧分享

2017-05-10 15:30:30

skynet崩潰程序

2018-05-07 08:22:19

LinuxImageMagick查看圖片

2020-04-14 09:22:47

bash腳本技巧

2009-11-26 10:32:57

PHP代碼優(yōu)化

2020-04-08 10:21:58

bash腳本語言

2019-11-06 10:00:21

Linux 技巧操作系統(tǒng)

2024-03-11 15:08:26

Linux操作系統(tǒng)進(jìn)程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美三级小说| 国产精品一卡二卡| 日韩精品免费一区二区在线观看 | 国产无一区二区| 日本一区二区精品| 欧美少妇xxxx| 色综合天天综合网国产成人网| 人人超碰91尤物精品国产| 亚洲澳门在线| 欧美午夜久久| 亚洲一区999| 在线男人天堂| 日韩欧美影院| 日韩欧美在线网址| 日韩小视频在线播放| 动漫一区二区在线| 亚洲精华一区二区三区| 国语自产精品视频在线看| 亚洲精品自拍| 色综合久久久久久中文网| 国产日韩在线观看视频| 久久久久久国产免费| 免费萌白酱国产一区二区三区| 欧美—级高清免费播放| 丝袜美腿综合| 国产精品美女久久久久久免费 | 99re8这里有精品热视频8在线| 国产日韩欧美在线一区| 日韩三级电影免费观看| 日韩在线精品强乱中文字幕| 欧美国产日韩二区| 日韩av地址| 久久精品国产亚洲a| 俺去了亚洲欧美日韩| 日本福利片免费看| 97久久精品人人做人人爽50路| 羞羞色国产精品| 99精品免费在线观看| 国产成人一区| 久久综合九色综合欧美98| 在线成人激情黄色| 午夜网站在线观看| 亚洲最新av| 欧美激情按摩在线| 都市激情亚洲欧美| 色av中文字幕一区| 我要色综合中文字幕| 美女av一区二区| 亚洲精品一区在线| 亚洲男同性恋视频| 一级片a一级片| 欧美美女激情18p| 日韩欧美一区二区三区在线观看| 久久精品99久久香蕉国产色戒| 久久电影在线| 美脚丝袜一区二区三区在线观看| 成人一区二区三区视频| bt电影在线| 欧美成人一区二区三区在线观看| 日韩成人综合网| 国产极品jizzhd欧美| 午夜在线精品| 牛夜精品久久久久久久| 欧美性大战久久| 日日夜夜亚洲精品| 99久久99久久| 91亚洲大成网污www| 免费福利在线视频| 亚洲最新视频在线| 91视频综合| 日韩中文字幕亚洲精品欧美| 一区二区三区在线观看网站| 黄色免费网站在线观看| 欧美精品久久久久a| 新狼窝色av性久久久久久| 亚洲无吗一区二区三区| 欧美丰满高潮xxxx喷水动漫| 1204国产成人精品视频| 色乱码一区二区三在线看| 亚洲麻豆国产自偷在线| 欧美影视资讯| 免费一区二区三区在在线视频| 中文字幕精品一区二区精品绿巨人| 免费黄色在线看| 91av免费观看91av精品在线| 美国十次了思思久久精品导航 | 在线日韩电影| 天美星空大象mv在线观看视频| 欧美日韩国产影片| 97se亚洲| 日本一级黄视频| 91精品欧美一区二区三区综合在| 亚洲婷婷丁香| 欧美亚洲另类色图| 亚洲精品wwww| 国产精品婷婷| 天堂av在线免费观看| 午夜精品一区二区三区在线视| 国产乱码精品一区二区三区忘忧草| 亚洲成人av高清| 97在线观看免费高清| 国产精品影视在线| av免费在线观| av一区二区三区四区电影| 亚洲色图视频免费播放| 国产成人精品一区二区三区免费| 日本不卡在线观看| 欧美怡红院视频| 久久国产电影| 一级毛片国产| 97免费视频在线播放| 91蜜桃在线观看| 姬川优奈av一区二区在线电影| 欧日韩一区二区三区| 色噜噜狠狠一区二区三区果冻| 国产成人ay| www.成人69.com| 孩xxxx性bbbb欧美| 国产欧美视频在线观看| 亚洲高清影院| 成人av一级片| 最新的欧美黄色| 成人美女视频在线观看| 永久免费毛片在线播放| 亚洲一区二区不卡视频| 日韩精品专区在线影院观看| 一本久久综合| 成人在线免费看黄| 青青草国产精品| 精品国免费一区二区三区| 一区二区国产在线观看| 女女色综合影院| 欧美久久久久久久| 日韩欧美国产一区在线观看| 免费看黄裸体一级大秀欧美| 污片在线免费观看| 亚洲精品免费在线看| 亚洲国产精品成人精品| 九色综合狠狠综合久久| 成人亚洲免费| av网站在线不卡| 国产精品99导航| 91黄视频在线| 老司机久久99久久精品播放免费| 91在线中文| 欧美 日韩 国产精品| 中文字幕亚洲欧美一区二区三区 | 亚洲tv在线| 五月婷婷狠狠操| 人体精品一二三区| 五月婷婷另类国产| 亚洲大片av| 女海盗2成人h版中文字幕| 妺妺窝人体色777777| 九九九久久国产免费| 亚洲另类春色国产| 狠狠色狠狠色综合日日tαg | 在线视频你懂得一区二区三区| 亚洲经典三级| 成入视频在线观看| 妞干网在线免费视频| 国产精品美女久久| 在线不卡免费欧美| 国产91在线观看| 自拍自偷一区二区三区| 国家队第一季免费高清在线观看| 日韩片电影在线免费观看| 久久伊人免费视频| 亚洲成人你懂的| 男人的天堂亚洲一区| 国产精一区二区| 欧洲天堂在线观看| 一区二区三区偷拍| 欧美亚洲国产视频小说| 欧美日本一区二区三区四区| jvid福利写真一区二区三区| 91欧美国产| 日本在线中文字幕一区二区三区| 男人天堂2020| 97超碰人人爱| 国产精品美乳一区二区免费| 精品国产乱码久久久久久免费 | 99国内精品久久久久久久| 日本高清在线观看| 久久精品影视大全| 国产午夜精品在线| 久青草国产97香蕉在线视频| 色综合久久88色综合天天6| 国产精品一区二区91| 欧美日韩久久精品| 欧美xxx性| 欧美孕妇孕交| 99在线精品免费视频| 51精品国产人成在线观看| 色av中文字幕一区| 欧美猛男超大videosgay| 国产精品国产三级国产| 蜜臀av一区二区三区| 我不卡影院28| 波多野结衣在线一区二区|