1. 程式人生 > >JQuery基礎知識==jQuery選擇器

JQuery基礎知識==jQuery選擇器

層級選擇器 tex 更強 hidden nim splay 長度 spa 一個

選擇器是jQuery的基礎,在jQuery中,對事件處理、遍歷DOM和Ajax操作都依賴於選擇器

1. CSS選擇器

  1.1 CSS是一項出色的技術,它使得網頁的結構和表現樣式完全分離。利用CSS選擇器可以輕松的對某個元素添加樣式而不用改動HTML結構,只需要通過添加不同的CSS規則,就可以得到不同樣式的網頁

  1.2 要使某個樣式樣式應用於HTML元素,首先需要找到該元素。在CSS中,執行這一任務的表現規則就是CSS選擇器

  1.3 常用CSS選擇器

    標簽選擇器:p{color:red;}

    ID選擇器:#myId{color:red;}

    類選擇器:.myClass{color:red;}

    群組選擇器:p,.myClass,td{color:red}

    後代選擇器:#myParent a{} 選擇myParent 後面的所有a標簽

    通配選擇器:*{} 以文檔的所有元素作為選擇符

    偽類選擇器:

    子選擇器:E>F

    臨近選擇器:E+F

    屬性選擇器:E[attr]

  註意:主流瀏覽器並非完全支持所有的選擇器

  1.4 將CSS應用到網頁中的3種的方法

    行間樣式表;內部樣式表;外部樣式表

2. jQuery選擇器

  jQuery選擇器完全繼承了CSS的規則。利用jQuery選擇器,可以非常方便和快捷的找出特定的DOM元素,然後為他們添加相應的行為,而無需擔心瀏覽器是否支持這一選擇器。

  jQuery選擇器的寫法與CSS選擇器的寫法非常相似,只是作用效果不同。CSS選擇器是找到元素後為元素添加樣式;jQuery選擇器是找到元素後為其添加行為。並且,jQuery選擇器中涉及操作CSS樣式的部分比單純的CSS功能更強大,以及擁有跨瀏覽器的兼容性

  2.1 jQuery選擇器的優勢

    簡潔的寫法

    支持CSS1到CSS3選擇器:使用CSS選擇器時,需要考慮主瀏覽器是否支持某些選擇器,而jQuery選擇器有極好的兼容性

    完善的處理機制:

    註意:$(".tt")獲取的永遠是對象,即使網頁上沒有此元素,因此當使用jQuery檢查網頁中是否存在某個元素時,就不可以使用if( $(".tt") )判斷

而是判斷元素的長度是否大於0 if( $(".tt").length>0 ) 或者轉化成對象再判斷 if( $(".tt")[0] )

  2.2 jQuery選擇器:基本選擇器、層級選擇器、過濾選擇器、表單選擇器

  基本選擇器:

  $("#test"):選取id為test的元素(返回單個元素)

  $(".test"):選取所有class是test的元素(返回集合元素)

  $("p"):選取所有的<p>元素(返回集合元素)

  $("*"):選擇網頁中的所有元素(返回集合元素)

  $("p,#test,.test"):選擇每一個選擇器匹配到的元素集合

  層次選擇器:主要是獲取後代元素、子元素、相鄰元素和同輩元素等

  $("div span"):選取div元素裏的所有span(後代)元素

  $("div>span"):選取div元素下的span(子)元素,$("div span")選取是後代元素

  $("prev+next"):選取緊跟在prev後面的元素next(可以使用next()方法替代)

  $("prev~sliblings"):選擇prev元素之後的所有同胞元素(可以使用nextAll()替代)

  註意:$("prev~div")只能選擇prev元素後面的同輩div元素;而sliblings()方法與前後的位置無關,只要是同輩節點都可以匹配

  過濾選擇器:主要是通過特定的過濾規則篩選出所需的DOM元素,過濾器是冒號(:)開頭。可以簡單的分類為:基本過濾、內容過濾、可見性過濾、屬性過濾、子元素過濾、表單對象屬性過濾選擇器

  基本過濾選擇器:

  :first 選取第一個元素

  :last 選取最後一個元素

  :no(selector) 去除所有與給定選擇器匹配的元素

  :even 選取索引是偶數的所有元素 索引從0開始

  :odd 選取索引是奇數的所有元素 索引從0開始

  :eq(index) 選取索引等於index的元素

  :gt(index) 選取索引大於index的元素

  :lt(index) 選取索引小於index的元素

  :header 選取所有的標題元素,例如h1,h2,h3等

  :focus 選取當前獲取焦點的元素

  :animated 選取當前正在執行動畫的所有元素

  內容過濾選擇器:他的過濾規則主要體現在它所包含的子元素或文本內容上

  :contains(text) 獲取含有文本內容為text的元素

  :empty 選取不包含子元素或文本內容為空的元素

  :parent 選取含有子元素或文本的元素

  :has(selector) 選取含有選擇器所匹配的元素的元素 $("div:has(p)")選取含有p元素的所有div元素

  

  可見性過濾選擇器:是根據元素的可見和不可見狀態來選擇相應的選擇器

  :hidden 選取所有不可見的元素(註:不僅包含樣式屬性display:none的元素,還包含type=hidden的元素和visibility:hidden的元素)

  :visible 選取所有可見的元素

  

  屬性過濾選擇器:主要是根據元素的屬性來獲取相應的元素

  [attr] 選取擁有此屬性的元素

  [attr=value] 選取屬性的值為value的元素

  [attr!=value] 選取屬性的值不是value的元素

  [attr^=value] 選取屬性的值以value開頭的元素

  [attr$=value] 選取屬性的值以value結束的元素

  [attr*=value] 選取屬性的值包含value的元素

  [attr|=value] 選取屬性等於給定字符串或以該字符串為前綴的元素

  [attr~=value] 選取屬性用空格分割的值中包含一個給定值得元素

  [attr1][attr2][attr3] 用屬性選擇器合並成一個符合選擇器,滿足多個條件。每選擇一次,縮小一次範圍  

  子元素過濾選擇器

  

  

JQuery基礎知識==jQuery選擇器