第二節:選擇器
選擇器引擎規則:
1、css選擇器的規則:標籤選擇器、id選擇器、類選擇器、混合選擇器
2、css3選擇器規則
3、狀態和僞類::even/ :odd/ :first/ :last/ :eq(index)
4、屬性:(attr==value)
層級選擇器:通過DOM的嵌套關係匹配關係
JQuery層級選擇器:包含選擇器、子選擇器、相鄰選擇器、兄弟選擇4種
1、包含選擇器:$("a b")
在給定的祖先元素下匹配所有後代元素。(不受層級限制)
2、子選擇器:$("parent>child")
在給定的父元素下匹配所有子元素
3、相鄰選擇器:$("prev+next")
匹配所有緊湊在prev元素後的next元素
4、兄弟元素:$("prev~siblings")
匹配prev元素之後的所有sibling元素。
基本過濾器:
:first
:匹配找到的第一個元素
:last
:匹配找到的最後一個元素
:eq
:匹配一個給定索引值的元素
:even
:匹配所有索引值爲偶數的元素
:odd
:匹配所有索引值爲奇數的元素
:gt(index)
:匹配所有大於給定給定索引值的元素
:lt(index)
:匹配所有小於給定索引值的元素
:not
:去除所有與給定選擇器匹配的所有元素
:animated
:選取正在執行動畫的所有元素
focus
:選擇正在獲取焦點的元素
內容過濾選擇器:
:contains(text)
:選取含有文本內容爲text的元素
:empty
:選取不包含子元素獲取文本的空元素
:has(selector)
:選擇含有選擇器所匹配的元素的元素
:parent
:選取含有子元素或者文本的元素
可見過濾選擇器
:hidden
選擇所有不可見的元素 集合元素
:visible
選取所有可見的元素 集合元素
屬性過濾選擇器
[attribute]
選取擁有此屬性的元素 集合元素
[attribute=value]
選取屬性值爲value值的元素 集合元素
[attribue^=value]
選取屬性的值以value開始的元素 集合元素
[attribue$=value]
選取屬性的值以value結束的元素 集合元素
子元素過濾選擇器
:nth-child(index/even/odd)
選取每個父元素下的第index個子元素或者奇偶元素(index從1算起) 集合元素
:first-child
選取每個元素的第一個子元素 集合元素
:last-child
選取每個元素的最後一個子元素 集合元素
:nth-child()
選擇器是很常用的子元素過濾選擇器,如下
:nth-child(even)
選擇每個父元素下的索引值是偶數的元素
:nth-child(odd)
選擇每個父元素下的索引值是奇數的元素
:nth-child(2)
選擇每個父元素下的索引值是2的元素
:nth-child(3n)
選擇每個父元素下的索引值是3的倍數的元素 (n從1開始
選擇器優化
使用合適的選擇器表達式可以提高性能、增強語義並簡化邏輯。常用的選擇器中,ID選擇器速度最快,其次是類型選擇器。
1、多用ID選擇器,少直接使用class選擇器
2、多用父子關係,少用嵌套關係
3、緩存jQuery對象
使用過濾器
jQuery提供了2種選擇文檔元素的方式:選擇器和過濾器
1、類過慮器:根據元素的類屬性來進行過濾操作。
hasClass(className)
:判斷當前jQuery對象中的某個元素是否包含指定類名,包含返回true,不包含返回false
2、下標過濾器:精確選出指定下標元素
eq(index)
:獲取第N個元素。index是整數值,下標從0開始
3、表達式過濾器
filter(expr)/(fn)
:篩選出與指定表達式/函數匹配的元素集合。
功能最強大的表達式過濾器,可接收函數參數,也可以是簡單的選擇器表達式
映射 map(callback)
:將一組元素轉換成其他數組
清洗 not(expr)
:刪除與指定表達式匹配的元素
截取 slice(start,end)
:選取一個匹配的子集
查找
向下查找後代元素
children()
:取得所有元素的所有子元素集合(子元素)
find():
搜索所有與指定表達式匹配的元素(所有後代元素中查找)
查找兄弟元素 siblings()查找當前元素的兄弟