JQuery基礎知識==jQuery選擇器
選擇器是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選擇器