日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
一些應(yīng)該熟記于心的jQuery函數(shù)和技巧

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

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

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

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

基于屬性的選擇器

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

 
 
 
 
  1.  
  2.  

上面兩個(gè)HMTL元素中包含了九個(gè)屬性。利用jQuery,我們可以根據(jù)元素的屬性和屬性值來(lái)對(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)是一樣的,屬性和屬性值。

多重選擇器

如果你開(kāi)放的是一個(gè)較為大型的網(wǎng)站,選擇器的使用會(huì)變得困難。有時(shí)為了讓代碼變得更為簡(jiǎn)單,***將它們分割為兩個(gè)或三個(gè)選擇器。實(shí)際上這是非常簡(jiǎn)單和基礎(chǔ)的知識(shí),不過(guò)非常有用,我們應(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ú)立的,所以我們可以將這些選擇器組合起來(lái)進(jìn)行使用,如上例中的選擇器。

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

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

 
 
 
 
  1.  
  2. ... 
  3.  
  4.  
  5.      
  6.  
  7.          
  8.  
  9.             

    CreateanAccount!

     
  10.  
  11.              
  12.  
  13.                 PersonalInformation 
  14.  
  15.                  
  16.  
  17.                  
  18.  
  19.              
  20.  
  21.             

    Message

     
  22.  
  23.         
 
  •  
  •     
  •  
  •  
  •      
  •  
  •         

    Footermessage

     
  •  
  •     
  •  
  •  
  •  
  •  
  • 以上示例代碼的樹(shù)形圖如下:

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

    #p#

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

    選擇

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

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

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

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

    添加元素

    現(xiàn)在我們?cè)跇?shù)中添加元素。這個(gè)元素可以是段落、div元素、表格等等,假設(shè)我們想要添加一個(gè)列表,如下:

     
     
     
     
      •  
      •  
      •     
      • Dog
      •  
      •  
      •     
      • Cat
      •  
      •  
      •     
      • Frog
      •  
      •  
       

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

     
     
     
     
    1. var list= "
        \n" 
      •  
      •             + "
      • Dog
      • \n"  
      •  
      •             + "
      • Cat
      • \n"  
      •  
      •             + "
      • Frog
      • \n"  
      •  
      •             "
      "; 

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

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

     
     
     
     
    1. $(document).ready(function(){  
    2.  
    3.     var list= "
        \n" 
      •  
      •                 + "
      • Dog
      • \n"  
      •  
      •                 + "
      • Cat
      • \n"  
      •  
      •                 + "
      • Frog
      • \n"  
      •  
      •                 "
      ";         
    4.  
    5. $("#wrapper").children('#main').append(list);  
    6.  
    7. }); 

    字面上我們將字符串附加到HTML中的

    ,結(jié)果是這個(gè)列表顯示在p元素之后。

    移除元素

    移除元素并不難,當(dāng)我們談到對(duì)樹(shù)進(jìn)行轉(zhuǎn)換時(shí),在這一過(guò)程一定會(huì)涉及元素的移除。下面我們來(lái)移除之前選擇的那個(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è)方法連接起來(lái)。這有點(diǎn)類似:當(dāng)用戶單擊此處時(shí),調(diào)用該方法。聽(tīng)起來(lái)很熟悉,對(duì)嗎?沒(méi)錯(cuò),我們經(jīng)常這樣做??纯匆韵率纠?/p>

     
     
     
     
    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()這樣的語(yǔ)句調(diào)用這些方法?以下代碼提供了這些問(wèn)題的解決方案。定義一個(gè)方法,顯示一個(gè)元素的值。

     
     
     
     
    1. //ThenamewillbealertVal  
    2. jQuery.fn.alertVal= function(){  
    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ì)別人說(shuō):但你做完時(shí),給我電話,因?yàn)槲乙鑫业哪欠莨ぷ?。不過(guò)現(xiàn)在的問(wèn)題是:如何使用回調(diào)?

     
     
     
     
    1. $(document).ready(function(){  
    2.  
    3.     myCallBack= function(){  
    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開(kāi)發(fā)者邁出的***步,同時(shí)關(guān)于jQuery,推薦閱讀:你應(yīng)該學(xué)習(xí)jQuery的七大理由。另外,jQuery提供了一些不錯(cuò)的文檔,請(qǐng)單擊以下鏈接:

    OfficialDocumentation

    LearningjQuery(agoodblogtolearnjQuery)


    名稱欄目:一些應(yīng)該熟記于心的jQuery函數(shù)和技巧
    網(wǎng)頁(yè)地址:http://www.5511xx.com/article/coeodgs.html