1 基本選擇器
id選擇器
根據(jù)id來(lái)匹配元素胰蝠,示例:$(id)或者$(“#id")彪杉。類選擇器
根據(jù)class來(lái)匹配元素?cái)?shù)組灭抑,示例:$(“.class")行贪。屬性選擇器
根據(jù)屬性來(lái)匹配選擇器:
$(“[attr]"):匹配所有有attr屬性的選擇器
$(“[attr=val]"):匹配所有attr屬性=val的選擇器
$(“[attr!=val]"):匹配所有attr屬性不=val的選擇器
$(“[attr^=val]"):匹配所有attr屬性的值以val開(kāi)頭的選擇器
$(“[attr$=val]"):匹配所有attr屬性的值以val結(jié)尾的選擇器
$(“[attr*=val]"):匹配所有attr屬性的值含有val的選擇器
$(“[attr~=val]"):匹配所有attr屬性(此時(shí)該屬性解析為單詞數(shù)組)的值有val完整單詞的選擇器type選擇器
匹配所有input的type值的情況漾稀,如$(":text")。DOM節(jié)點(diǎn)選擇器
:empty:沒(méi)有任何子節(jié)點(diǎn)(包括元素和文本節(jié)點(diǎn))的元素
:eq(n)/:gt(n)/:lt(n)/:nth(n):匹配選中列表中建瘫,等于/大于/小于/等于 序號(hào)n的元素
:even/:odd:匹配偶數(shù)/奇數(shù)序號(hào)的元素
:first/:last:匹配選中列表 第一個(gè)/最后一個(gè) 元素
:first-child/:last-child:匹配其父元素和所有兄弟元素的第一個(gè)/最后一個(gè) 同類型元素
:nth-child(n):匹配選中列表中崭捍,第n個(gè)元素(其中n可以是數(shù)值,even暖混,odd,形如an+b的表達(dá)式缕贡。此時(shí)的n從1開(kāi)始)
:only-child:匹配只有一個(gè)子節(jié)點(diǎn)的元素
:parent:匹配是父節(jié)點(diǎn)的元素其他擴(kuò)展選擇器
:animated:匹配由jQuery產(chǎn)生的正在動(dòng)畫的元素
:enabled/:disabled:匹配(未)被禁用的元素
:selected:匹配下拉選中的元素
:visible/:hidden:匹配所有占位置/不占位置的元素
:has(sel)/:not(sel):匹配有/沒(méi)有 選擇器sel元素 的元素。
:header:匹配所有 < h1> < h2>等等的h標(biāo)簽拣播。
:input:匹配所有的input晾咪。
說(shuō)明:
1、在DOM節(jié)點(diǎn)選擇器中贮配,除nth-child(n)所有的n都是從0開(kāi)始計(jì)數(shù)的谍倦。
2、:hidden只匹配type=hidden或者display:none的元素泪勒。不匹配visibility:hidden的元素昼蛀。
3宴猾、:visible匹配所有非:hidden的元素
4、<font color=red>同一選擇器多次過(guò)濾叼旋,注意不要加空格仇哆,否則就變成在子孫節(jié)點(diǎn)中過(guò)濾。</font>
//匹配type=text且class以x開(kāi)頭的元素
console.log($("input[type=text][class^=x]"));
5夫植、選擇器的擴(kuò)展:
$.expr[":"].x = function (e) {
return e.type === 'button’;//函數(shù)要求返回布爾值讹剔,只記錄函數(shù)計(jì)算為true的元素
};
//使用
console.log($(“:x”));
2 組合選擇器
將基本選擇器進(jìn)行組合構(gòu)建的選擇器。
組合方式 | 說(shuō)明 |
---|---|
A B | 在A的子孫元素中選取匹配B選擇器的元素详民。注意AB間有空格延欠。 |
A>B | 在A的子元素中選取匹配B選擇器的元素。 |
A+B | 匹配A的下一個(gè)元素(忽略文本沈跨、注釋節(jié)點(diǎn)),選取匹配B的元素由捎,若下一個(gè)元素不匹配,則沒(méi)有饿凛。 |
A~B | 匹配A后面的所有兄弟元素狞玛,選取匹配B的元素 |
選擇器組
用逗號(hào)將選擇器隔開(kāi),返回組合的結(jié)果(并集)笤喳,并按照文檔順序排序为居。
console.log($(".x00,.x04,:button"));//返回所有含有class=x00或者class=x04或者type=button的文檔元素
DOM選取方法
方法名 | 示例 | 說(shuō)明 |
---|---|---|
.first()/.last() |
$("input").first() $("input").last()
|
當(dāng)前選中列表的第一個(gè)/最后一個(gè)元素 |
.eq(n) | $("input").eq(1) |
當(dāng)前選中列表的第n個(gè)元素(n從0開(kāi)始) |
.slice() |
$("input").slice(1,3) $("input").slice(1)
|
類似數(shù)組的slice方法。從下表a開(kāi)始到下表b的區(qū)間元素杀狡。[a,b) |
.fliter() |
$("input").filter($(".x01")) $("input").filter(".x01") $("input").filter(function (i) {return i==1;})
|
在當(dāng)前所選區(qū)間的過(guò)濾蒙畴。 傳入jQ對(duì)象或者選擇器效果一樣。 傳入函數(shù)時(shí)呜象,過(guò)濾的結(jié)果為true的元素膳凝。 |
.not() | $("input").not(".x01") |
在當(dāng)前所選列表中不包含選擇器的所有元素 |
.has() | $("div").has(".x01") |
在當(dāng)前所選列表中,其子孫元素包含選擇器的所有元素恭陡。該方法只針對(duì)當(dāng)前所選列表的子孫元素過(guò)濾蹬音,但返回當(dāng)前所選元素。 |
.add() |
$("input").add("#ss") $("input").add($("#ss"))
|
在當(dāng)前所選列表中休玩,添加元素著淆。并按照文檔順序排列。 |
.find() | $("div").find(".x00") |
在當(dāng)前所選列表的子孫元素中拴疤,查找選擇器對(duì)應(yīng)的元素永部,并返回該子孫元素。等價(jià)于($”div .x00”)呐矾。 |
.children()/.content() |
$("#ss").children() $("#ss").contents()
|
返回當(dāng)前所選列表的所有子元素節(jié)點(diǎn)/子節(jié)點(diǎn)(包含文本)苔埋。 |
.parent()/.closest(“”) |
$("#span12").parent() $("#span12").closest(".test")
|
返回當(dāng)前所選元素的直接父節(jié)點(diǎn)返回當(dāng)前所選元素的匹配選擇器(必填)的最近的父節(jié)點(diǎn) |
.next()/.prev() |
$("#ssss").prev() $("#ssss").next()
|
返回當(dāng)前節(jié)點(diǎn)的前一個(gè)/后一個(gè)兄弟節(jié)點(diǎn) |
.nextAll()/.prevAll() |
$(".x04").prevAll() $(".x04").nextAll()
|
返回當(dāng)前節(jié)點(diǎn)的前面所有/后面所有的兄弟節(jié)點(diǎn) |
.parents()/.parentsUntil() |
$(".x04").parents("div") $(".x04").parentsUntil("div") 等價(jià)于 $(".x04").closest("div"). children().first()
|
在當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)中,所有的匹配選擇器元素 在當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)中蜒犯,向上主機(jī)匹配组橄,直到匹配到選擇器荞膘,但不包含最近的元素的父元素。 |
補(bǔ)充:
1玉工、$(“XXX").end():(不接受參數(shù))
jQuery的鏈?zhǔn)秸{(diào)用羽资,實(shí)際創(chuàng)建了一個(gè)jQuery的鏈?zhǔn)奖砘蛘邨!6看握{(diào)用end()遵班,則彈出一次棧削罩。end()只針對(duì)改變了jQuery最終選中元素的鏈?zhǔn)秸{(diào)用,其他鏈?zhǔn)椒椒ǎㄈ鏲ss等)全部忽視费奸。
$(".x04").closest("div").children().first().end();//返回children的結(jié)果
$(".x04").closest("div").children().first().end().end();//返回closest的結(jié)果
2、andSelf():(jQuery1.8以后改名為addBack())(不接受參數(shù))
在jQuery的鏈?zhǔn)蕉褩V屑尤胱詈笠淮胃淖兘Y(jié)果的調(diào)用對(duì)象进陡。
$(".x04").closest("div").children().first().addBack();//返回first和children的并集結(jié)果(不重復(fù))