在菜鳥(niǎo)教程給出的文檔上,jquery的選擇器有很多用法,讓人看了眼花繚亂,筆者試圖將它們捋清楚些,有錯(cuò)誤請(qǐng)見(jiàn)諒。
jquery選擇器有些沿用了css中一些用法,有些則是根據(jù)原生javascript派生而來(lái),參照集合論的“子交并補(bǔ)”的運(yùn)算方式,jquery選擇器可以分為幾種。
子集
#id? ? ? ? ? ? ? ? 實(shí)例$('#dom')? ? ? ? ? ? ? ? 即id為“dom”的元素,封裝了document.getElementById('dom');方法,且每次只返回一個(gè)元素的引用。
.class? ? ? ? ? ? 實(shí)例$('.dom')? ? ? ? ? ? ? ? 即class為“dom”的元素,封裝了document.getElementsByClassName("class");方法,每次返回一個(gè)數(shù)組。
:first? ? ? ? ? ? ? ? 實(shí)例$('p:first')? ? ? ? ? ? ? 即取第一個(gè)p元素
:last? ? ? ? ? ? ? ? 實(shí)例$('p:last')? ? ? ? ? ? ? ? 即取最后一個(gè)p元素
:even? ? ? ? ? ? ? $('tr:even')? ? ? ? ? ? ? ? ? ? 取所有index為偶數(shù)的tr元素(返回為數(shù)組)
:odd? ? ? ? ? ? ? ? 實(shí)例$('tr:odd')? ? ? ? ? ? ? ? 取所有index為奇數(shù)的tr元素(返回為數(shù)組)
*? ? ? ? ? ? ? ? ? ? ? 實(shí)例$('*')? ? ? ? ? ? ? ? ? ? ? ? 取所有的dom元素(數(shù)組),全集
parent>child? ? $('div>p")? ? ? ? ? ? ? ? ? ? 取所有div直接下屬的p元素
parent descendant $('div p')? ? ? ? ? ? ? ? 取所有div下屬的所有p元素(不管是不是直接包含)
區(qū)間
:eq(index)? ? ? ? $('ul li:eq(3)')? ? ? ? ? ? ? ? 取index為3的元素
:gt(no)? ? ? ? ? ? ? $('ul li:gt(3)')? ? ? ? ? ? ? ? 取index>3的元素
:lt(no)? ? ? ? ? ? ? ? $('ul li:lt(3)')? ? ? ? ? ? ? ? 取index<3的元素
屬性
[attribute]? ? ? ? ? $('[href]')? ? ? ? ? ? ? ? ? ? ? ? 取所有帶有href屬性的元素
[attribute=value]? ? ? ? ? $('[href=xx.html]')? ? ? ? ? ? 取所有href為xx.html的元素
[attribute!=value]?? ? ? ? ? $('[href=xx.html]')? ? ? ? ? ? 取所有href不為xx.html的元素
并集
上述查詢用‘,’分開(kāi)即可取并集