日韩无码专区无码一级三级片|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)銷解決方案
改變獲取對(duì)象方式 萬(wàn)能的jQuery選擇器

編寫(xiě)任何javascript程序我們要首先獲得對(duì)象,jQuery選擇器可以獲取幾乎任何語(yǔ)意的對(duì)象,比如"擁有title屬性并且值中包含test的元素",完成這些工作只需要編寫(xiě)一個(gè)jQuery選擇器字符串,學(xué)習(xí)jQuery選擇器是學(xué)習(xí)jQuery最重要的一步。

推薦專題: jQuery從入門到精通

Dom對(duì)象和jQuery包裝集

無(wú)論是在寫(xiě)程序還是看API文檔,  我們要時(shí)刻注意區(qū)分Dom對(duì)象和jQuery包裝集。

1.Dom對(duì)象

在傳統(tǒng)的javascript開(kāi)發(fā)中,我們都是首先獲取Dom對(duì)象,比如:

 
 
 
 
  1. var div = document.getElementById("testDiv");   
  2. var divs = document.getElementsByTagName("div"); 

我們經(jīng)常使用document.getElementById方法根據(jù)id獲取單個(gè)Dom對(duì)象, 或者使用document.getElementsByTagName方法根據(jù)HTML標(biāo)簽名稱獲取Dom對(duì)象集合。

另外在事件函數(shù)中, 可以通過(guò)在方法函數(shù)中使用this引用事件觸發(fā)對(duì)象(但是在多播事件函數(shù)中IE6存在問(wèn)題), 或者使用event對(duì)象的target(FF)或srcElement(iIE6)獲取到引發(fā)事件的Dom對(duì)象

注意我們這里獲取到的都是Dom對(duì)象, Dom對(duì)象也有不同的類型比如input, div, span等.  Dom對(duì)象只有有限的屬性和方法:

2.jQuery包裝集

jQuery包裝集可以說(shuō)是Dom對(duì)象的擴(kuò)充.在jQuery的世界中將所有的對(duì)象, 無(wú)論是一個(gè)還是一組, 都封裝成一個(gè)jQuery包裝集,比如獲取包含一個(gè)元素的jQuery包裝集:

 
 
 
 
  1. var jQueryObject = $("#testDiv");
  2.  

jQuery包裝集都是作為一個(gè)對(duì)象一起調(diào)用的. jQuery包裝集擁有豐富的屬性和方法, 這些都是jQuery特有的:

3.Dom對(duì)象與jQuery對(duì)象的轉(zhuǎn)換

(1) Dom轉(zhuǎn)jQuery包裝集

如果要使用jQuery提供的函數(shù),  就要首先構(gòu)造jQuery包裝集.  我們可以使用本文即將介紹的jQuery選擇器直接構(gòu)造jQuery包裝集,比如:

 
 
 
 
  1. $("#testDiv");
  2.  

上面語(yǔ)句構(gòu)造的包裝集只含有一個(gè)id是testDiv的元素,或者我們已經(jīng)獲取了一個(gè)Dom元素,比如:

 
 
 
 
  1. var div = document.getElementById("testDiv"); 
  2.  

上面的代碼中div是一個(gè)Dom元素, 我們可以將Dom元素轉(zhuǎn)換成jQuery包裝集:

 
 
 
 
  1. var domToJQueryObject = $(div); 
  2.  

小竅門:因?yàn)橛辛酥悄芨兄? 所以我們可以通過(guò)智能感知的方法列表來(lái)判斷一個(gè)對(duì)象啊是Dom對(duì)象還是jQuery包裝集.

(2) jQuery包裝集轉(zhuǎn)Dom對(duì)象

jQuery包裝集是一個(gè)集合, 所以我們可以通過(guò)索引器訪問(wèn)其中的某一個(gè)元素:

 
 
 
 
  1. var domObject = $("#testDiv")[0]; 
  2.  

注意, 通過(guò)索引器返回的不再是jQuery包裝集, 而是一個(gè)Dom對(duì)象!jQuery包裝集的某些遍歷方法,比如each()中, 可以傳遞遍歷函數(shù), 在遍歷函數(shù)中的this也是Dom元素,比如:

 
 
 
 
  1. $("#testDiv").each(function() { alert(this) })
  2.  

如果我們要使用jQuery的方法操作Dom對(duì)象,怎么辦? 用上面介紹過(guò)的轉(zhuǎn)換方法即可:

 
 
 
 
  1. $("#testDiv").each(function() { $(this).html("修改內(nèi)容") })
  2.  

小結(jié): 先讓大家明確Dom對(duì)象和jQuery包裝集的概念, 將極大的加快我們的學(xué)習(xí)速度. 我在學(xué)習(xí)jQuery的過(guò)程中就花了很長(zhǎng)時(shí)間沒(méi)有領(lǐng)悟到兩者的具體差異, 因?yàn)闀?shū)上并沒(méi)有專門講解兩者的區(qū)別, 所以經(jīng)常被"this指針為何不能調(diào)用jQuery方法"等問(wèn)題迷惑.  直到某一天豁然開(kāi)朗, 發(fā)現(xiàn)只要能夠區(qū)分這兩者, 就能夠在寫(xiě)程序時(shí)變得清清楚楚。

#p#

什么是jQuery選擇器

在Dom編程中我們只能使用有限的函數(shù)根據(jù)id或者TagName獲取Dom對(duì)象,在jQuery中則完全不同,jQuery提供了異常強(qiáng)大的選擇器用來(lái)幫助我們獲取頁(yè)面上的對(duì)象, 并且將對(duì)象以jQuery包裝集的形式返回,首先來(lái)看看什么是選擇器:

 
 
 
 
  1. //根據(jù)ID獲取jQuery包裝集   
  2. ar jQueryObject = $("#testDiv"); 

上例中使用了ID選擇器, 選取id為testDiv的Dom對(duì)象并將它放入jQuery包裝集, ***以jQuery包裝集的形式返回。"$"符號(hào)在jQuery中代表對(duì)jQuery對(duì)象的引用, "jQuery"是核心對(duì)象, 其中包含下列方法:

 
 
 
 
  1. jQuery( expression, context )   
  2. Returns: jQuery 

這個(gè)函數(shù)接收一個(gè)CSS選擇器的字符串,然后用這個(gè)字符串去匹配一組元素。

 
 
 
 
  1. jQuery( html, ownerDocument )   
  2. Returns: jQuery 

根據(jù)HTML原始字符串動(dòng)態(tài)創(chuàng)建Dom元素.

 
 
 
 
  1. jQuery( elements )   
  2. Returns: jQuery 

將一個(gè)或多個(gè)Dom對(duì)象封裝jQuery函數(shù)功能(即封裝為jQuery包裝集)

 
 
 
 
  1. jQuery( callback )   
  2. Returns: jQuery 

Returns的類型為jQuery即表示返回的是jQuery包裝集.其中***個(gè)方法有些問(wèn)題, 官方接口寫(xiě)的是CSS選擇器, 但是實(shí)際上這個(gè)方法不僅僅支持CSS選擇器, 而是所有jQuery支持的選擇器, 有些甚至是jQuery自定義的選擇器(在CSS標(biāo)準(zhǔn)中不存在的選擇器),為了能讓大家理解的更清楚,我們將方法修改如下:

 
 
 
 
  1. jQuery( selector, context )   
  2. Returns: jQuery  

根據(jù)選擇器選取匹配的對(duì)象, 以jQuery包裝集的形式返回。context可以是Dom對(duì)象集合或jQuery包裝集,傳入則表示要從context中選擇匹配的對(duì)象,不傳入則表示范圍為文檔對(duì)象(即頁(yè)面全部對(duì)象)。上面這個(gè)方法就是我們選擇器使用的核心方法.可以用"$"代替jQuery讓語(yǔ)法更簡(jiǎn)介, 比如下面兩句話的效果相同:

 
 
 
 
  1. //根據(jù)ID獲取jQuery包裝集   
  2. var jQueryObject = $("#testDiv");   
  3. //$是jQuery對(duì)象的引用:   
  4. var jQueryjQueryObject = jQuery("#testDiv"); 

接下來(lái)讓我們系統(tǒng)的學(xué)習(xí)jQuery選擇器。

#p#

jQuery選擇器全解

通俗的講, Selector選擇器就是"一個(gè)表示特殊語(yǔ)意的字符串",只要把選擇器字符串傳入上面的方法中就能夠選擇不同的Dom對(duì)象并且以jQuery包裝集的形式返回。

但是如何將jQuery選擇器分類讓我犯難. 因?yàn)闀?shū)上的分類和jQuery官方的分類截然不同. ***我決定以實(shí)用為主, 暫時(shí)不去了解CSS 3選擇器標(biāo)準(zhǔn), 而按照jQuery官方的分類進(jìn)行講解。

jQuery的選擇器支持CSS 3選擇器標(biāo)準(zhǔn). 下面是W3C***的CSS3選擇器標(biāo)準(zhǔn):http://www.w3.org/TR/css3-selectors/。標(biāo)準(zhǔn)中的選擇器都可以在jQuery中使用.

jQuery選擇器按照功能主要分為"選擇"和"過(guò)濾". 并且是配合使用的. 可以同時(shí)使用組合成一個(gè)選擇器字符串. 主要的區(qū)別是"過(guò)濾"作用的選擇器是指定條件從前面匹配的內(nèi)容中篩選, "過(guò)濾"選擇器也可以單獨(dú)使用, 表示從全部"*"中篩選. 比如:

 
 
 
 
  1. $(":[title]") 
  2.  

等同于:

 
 
 
 
  1. $("*:[title]") 
  2.  

而"選擇"功能的選擇器則不會(huì)有默認(rèn)的范圍, 因?yàn)樽饔檬?選擇"而不是"過(guò)濾",下面的選擇器分類中,  帶有"過(guò)濾器"的分類表示是"過(guò)濾"選擇器,  否則就是"選擇"功能的選擇器.jQuery選擇器分為如下幾類:

1. 基礎(chǔ)選擇器Basics

2.層次選擇器Hierarchy

3.基本過(guò)濾器Basic Filters

4. 內(nèi)容過(guò)濾器Content Filters

5.可見(jiàn)性過(guò)濾器Visibility Filters

6.屬性過(guò)濾器Attribute Filters

7.子元素過(guò)濾器Child Filters

8.表單選擇器Forms

9.表單過(guò)濾器Form Filters

【編輯推薦】

  1. jQuery選擇器深入分析:避免不必要的調(diào)用
  2. 淺析jQuery框架與構(gòu)造對(duì)象
  3. 5種方法教你用jQuery重寫(xiě)表單驗(yàn)證
  4. 即刻提升jQuery性能的十個(gè)技巧
  5. 使用jQuery構(gòu)建未來(lái)Web應(yīng)用程序

分享題目:改變獲取對(duì)象方式 萬(wàn)能的jQuery選擇器
分享地址:http://www.5511xx.com/article/ccocpji.html