偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

改變獲取對象方式 萬能的jQuery選擇器

開發(fā) 開發(fā)工具
本章講解jQuery最重要的選擇器部分的知識,有了jQuery的選擇器我們幾乎可以獲取頁面上任意的一個(gè)或一組對象, 可以明顯減輕開發(fā)人員的工作量。

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

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

Dom對象和jQuery包裝集

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

1.Dom對象

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

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

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

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

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

2.jQuery包裝集

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

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

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

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

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

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

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

上面語句構(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)橛辛酥悄芨兄? 所以我們可以通過智能感知的方法列表來判斷一個(gè)對象啊是Dom對象還是jQuery包裝集.

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

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

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

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

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

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

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

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

#p#

什么是jQuery選擇器

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

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

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

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

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

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

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

  1. jQuery( elements )   
  2. Returns: jQuery 

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

  1. jQuery( callback )   
  2. Returns: jQuery 

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

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

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

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

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

#p#

jQuery選擇器全解

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

但是如何將jQuery選擇器分類讓我犯難. 因?yàn)闀系姆诸惡蚸Query官方的分類截然不同. ***我決定以實(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選擇器按照功能主要分為"選擇"和"過濾". 并且是配合使用的. 可以同時(shí)使用組合成一個(gè)選擇器字符串. 主要的區(qū)別是"過濾"作用的選擇器是指定條件從前面匹配的內(nèi)容中篩選, "過濾"選擇器也可以單獨(dú)使用, 表示從全部"*"中篩選. 比如:

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

等同于:

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

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

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

 基礎(chǔ)選擇器Basics

2.層次選擇器Hierarchy

層次選擇器Hierarchy

3.基本過濾器Basic Filters

基本過濾器Basic Filters

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

內(nèi)容過濾器Content Filters

5.可見性過濾器Visibility Filters

可見性過濾器Visibility Filters

6.屬性過濾器Attribute Filters

屬性過濾器Attribute Filters

7.子元素過濾器Child Filters

子元素過濾器Child Filters

8.表單選擇器Forms

表單選擇器Forms

9.表單過濾器Form Filters

表單過濾器Form Filters

【編輯推薦】

  1. jQuery選擇器深入分析:避免不必要的調(diào)用
  2. 淺析jQuery框架與構(gòu)造對象
  3. 5種方法教你用jQuery重寫表單驗(yàn)證
  4. 即刻提升jQuery性能的十個(gè)技巧
  5. 使用jQuery構(gòu)建未來Web應(yīng)用程序
責(zé)任編輯:王曉東 來源: Cnblogs
相關(guān)推薦

2011-04-26 15:07:48

jQuery

2011-06-16 15:57:25

Android

2009-02-27 13:48:00

Mdaemon郵件服務(wù)器

2016-11-24 12:07:42

Android萬能圓角ImageView

2012-06-12 09:43:11

jQuery

2022-06-27 08:36:08

PythonLambda

2014-02-17 10:56:21

Hadoop

2022-11-30 13:13:41

節(jié)能減碳PUE

2009-12-03 18:13:36

PHP萬能密碼

2010-12-27 16:01:45

jQuery選擇器

2010-07-20 10:11:32

jQuery選擇器Sizzle

2024-12-02 15:50:42

2020-06-16 08:32:00

人工智能技術(shù)機(jī)器學(xué)習(xí)

2022-11-21 09:57:18

網(wǎng)關(guān)系統(tǒng)

2022-06-23 18:10:15

多云

2015-08-26 13:49:28

數(shù)據(jù)中心

2024-12-09 09:25:30

2013-12-02 14:22:14

jQuery選擇器

2011-12-22 20:56:44

Android

2020-10-31 21:47:06

Python數(shù)據(jù)結(jié)構(gòu)開發(fā)
點(diǎn)贊
收藏

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