查找函數(shù)的作用是從集合內(nèi)再次查找匹配的元素,查找函數(shù)和過濾函數(shù)有時(shí)候是可以替換的。
查找函數(shù)列表:
名稱
|
說明
|
舉例
|
add(expr)
|
expr
可以是選擇器表達(dá)式、
DOM
對(duì)象、
jQuery
對(duì)象、集合或者
HTML
字符串。如果是
HTML
字符串則會(huì)動(dòng)態(tài)創(chuàng)建對(duì)象并添加到
jQuery
對(duì)象集合中
|
$(“p”).add(“<span>Again</span>”)
動(dòng)態(tài)的生成一個(gè)元素,并添加到匹配的元素中。
|
children([expr])
|
取得
jQuery
對(duì)象集合中所有匹配滿足表達(dá)式的
直接子元素
。省略
expr
參數(shù)表示選擇所有直接子元素。注意:
parents()
將查找所有祖輩元素,而
chlidren()
只考慮子元素而不考慮所有后代元素
|
$(“div”).children()
查找
div
中的每個(gè)直接子元素
|
closest([expr])
|
jQuery1.3
新增。從元素本身開始,逐級(jí)向上級(jí)元素匹配,并返回最先匹配的元素。
closest
會(huì)首先檢查當(dāng)前元素是否匹配,如果匹配則直接返回元素本身。如果不匹配則向上查找父元素,一層一層往上,知道找到匹配選擇器的元素。如果什么都沒找到則返回一個(gè)空的
jQuery
對(duì)象。
closest
對(duì)于處理事件委派非常有用。
|
$(documnet).bind(“click”,function(e){
$(e.target).closest(“l(fā)i”).toggleClass(“hilight”)
});
為事件源最近的父類
li
對(duì)象更換樣式
|
contents()
|
查找匹配元素內(nèi)部所有的子結(jié)點(diǎn)(
包括文本結(jié)點(diǎn)
)。如果元素是一個(gè)
iframe
,則查找文檔內(nèi)容
|
$(“p”).contents().not(“[nodeType=1]”).wrap(“<br>/”);
查找所有文本結(jié)點(diǎn)并加粗。
|
find(expr)
|
搜索所有與指定表達(dá)式匹配的元素。這個(gè)函數(shù)是找出正在處理元素的后代元素的好方法。所有搜索都依靠
jQuery
表達(dá)式來完成。這個(gè)表達(dá)式可以使用
CSS1-3
的選擇器語法來寫
|
從所有的段落開始,進(jìn)一步搜索下面的
span
元素。
與
$(“p span”)
相同:
$(“p”).find(“span”)
|
next([expr])
|
取得一個(gè)包含匹配的元素集合中每一個(gè)元素緊鄰的后面同輩元素的元素集合。這個(gè)函數(shù)只返回后面那個(gè)緊鄰的同輩元素,而不是后面所有的同輩元素
(nextAll)
。可以用一個(gè)可選的表達(dá)式進(jìn)行篩選
|
找到每個(gè)段落后面緊鄰的同輩元素:
$(“p”).next()
|
offsetParent
|
返回第一個(gè)有定位的父類比如
(relative
或
absolute)
|
|
parent([expr])
|
取得一個(gè)包含著所有匹配元素的唯一父元素的元素集合。
可以使用篩選的表達(dá)式來篩選
|
查找每個(gè)段落的父元素
$(“p”).parent()
|
parents([expr])
|
取得一個(gè)包含著所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通過一個(gè)可選的表達(dá)式進(jìn)行篩選
|
找到每個(gè)
span
元素的所有祖先元素
$(“span”).parents()
|
prev([expr])
|
取得一個(gè)包含匹配的元素集合中每個(gè)元素緊鄰的前一個(gè)同輩元素的元素集合
可以用一個(gè)可選的表達(dá)式進(jìn)行篩選。只有緊鄰的同輩元素會(huì)被匹配到,而不是前面所有的同輩元素
|
找到每個(gè)段落緊鄰的前一個(gè)同輩元素
$(“p”).prev()
|
prevAll([expr])
|
查找當(dāng)前元素之前所有的同輩元素,可以用表達(dá)式過濾
|
給最后一個(gè)之前的所有的
div
加上一個(gè)類:
$(“div”).prevAll().addClass(“before”);
|
siblings([expr])
|
取得一個(gè)包含匹配的元素集合中每一個(gè)元素的所有唯一同輩元素的元素集合。可以用可選的表達(dá)式進(jìn)行篩選。
|
找到每個(gè)
div
的所有同輩元素
$(“div”).siblings()
|
?
這張表看起來很煩,心里都很煩,find會(huì)常用吧。其他也不知道是不是能用上。不過既然有總是好的,也是有需要人家才開發(fā)的。希望以后深入使用可以體會(huì)到好處。
?
使用Traversing分類中的過濾和查找,會(huì)改變jQuery對(duì)象集合。串聯(lián)函數(shù)的作用就是找回或合并這些變更。
串聯(lián)函數(shù)的清單:
名稱
|
說明
|
舉例
|
andSelf()
|
將先前所選的元素加入到當(dāng)前元素中。對(duì)于篩選或查找后的元素,要加入先前所選元素將會(huì)很有用
|
選取所有
div
及內(nèi)部的
p
,并加上
border
類
$(“div”).find(“p”).andSelf().addClass(“border”);
|
end()
|
回到最近的一個(gè)“破壞性”操作之前,即將匹配的元素列表變?yōu)榍耙淮蔚臓顟B(tài)。
如果之前沒有破壞性操作,則返回一個(gè)空集。所謂的“破壞性”就是指任何改變所匹配的
jQuery
元素的操作。這包括在
Traversing
中返回任何一個(gè)
jQuery
對(duì)象的函數(shù)
-add,andSelf,
children,filter,find,map,next,nextAll,not,,
parent,parents,prev,prevAll,siblings,slice
再加上
Manipulation
中的
clone,appendTo,prependTo,insertBefore,
insertAfter,replaceAll
|
選取所有的
p
元素,查找并選取
span
子元素,然后再反過來選取
p
元素:
$(“p”).find(“span”).end();
|
?
andSelf()函數(shù)是不能同時(shí)使用兩次的,第二次調(diào)用是沒有效果的。
end()函數(shù)是可以多次調(diào)用的。
end()函數(shù)可以恢復(fù)一次破壞性操作。提供end()函數(shù)主要是為了能夠在jQuery鏈?zhǔn)讲僮魃蠄?zhí)行更多的操作。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
