頁面上經常會創建DOM元素、刪除DOM元素。因為jQuery對象是以集合的形式存在的,所以還要執行將DOM對象添加到jQuery對象集合、從jQuery對象集合中刪除等操作。jQuery官網將管理jQuery對象集合的函數放在了"Traversing"分類中。Traversing分類下主要包括三個子類:Filtering,Finding,Chaining分別是過濾,查找,鏈式操作。
?
過濾函數的作用是:在已經選定的集合中,將匹配過濾函數的元素保留,將不符合的去除。列表如下:
?
名稱
|
說明
|
舉例
|
eq(index)
|
返回集合中指定索引
index
的元素,從
0
開始計算
|
$(“p”).eq(1)
獲取匹配的第二個元素
|
filter(expr)
|
篩選出與指定表達式匹配的元素集合
|
$(“p”).filter(“.selected”)
保留帶有
selected
類的元素
|
filter(fn)
|
篩選出與指定函數返回值匹配的元素集合,這個函數內部將對每個對象計算一次(正如
’$.each’
)。如果調用的函數返回
false
則這個元素被刪除,否則就會被保留
|
$(“div”).filter(function(index){return $(“ol”,this).size()=0;});
保留子元素中不含有
ol
的元素
|
is(expr)
注意:這個函數返回的不是
jQuery
包裝集而是
Boolean
值
|
用一個表達式檢查當前選擇的元素集合,如果
其中至少有一個元素符合這個給定的表達式就返回
true
。如果沒有元素符合,或者表達式無效,則返回
false
。
filter
內部實際也是在調用這個函數,所以,
filter()
函數原有的規則在這里也適用。
|
$(“input[type=’checkbox’]”).parent().is(“form”)
由于
input
元素的父元素是一個表單元素,所以返回
true
。
|
map(callback)
|
將一組元素轉換成其他數組(不論是否是數組元素)可以用這個函數建立一個列表,不論是值、屬性還是
css
樣式,或者其他特別形式,都可以用
”$.map()”
來方便的建立
|
$(“p”).append($(“input”).map(function(){
return $(this).val();
}).get().join(“,”));
把
form
中的每個
input
元素的值簡歷一個列表
|
not(expr)
|
刪除與指定表達式匹配的元素
|
$(“p”).not($(“#selected”)[0])
從
P
元素中刪除帶有
select
的
ID
元素
|
slice()
|
選取一個匹配的子集
|
$(“p”).slice(0,1);
選擇第一個
P
元素
|
?
過濾函數要點
1.eq()函數
如果index超出了集合則返回一個空集合,而不會返回null。
2.filter()函數與find()函數
filter()函數支持選擇器表達式和fn()函數兩種類型的參數,是最常使用的過濾函數。但是初學者常常分不清filter()函數和后面即將講到的find()函數。jQuery后臺選擇器時已經在內部使用過find()函數:
jQuery("div .className");等同于jQuery("div").find(".className");
使用filter()和find()都要首先使用選擇器獲得一個jQuery對象集合。
filter()函數是作用在集合的每一個對象上,即在"jQuery("div")"選取的集合上過濾,將匹配表達式或者函數的對象保留。
find()函數是在每一個對象內部查找匹配表達式的子元素,即作用在"jQuery("div")"集合的每個子元素上。
3.is()函數
返回的是true或者false。只要jQuery對象集合中有一個元素滿足表達式的條件就返回true。比如:$("div").is(".testClass");只要有一個div應用了testClass的樣式就返回true。
4.map()函數
map()函數會改變jQuery對象集合,比如:
$("div").map(function(){return this.innerHtml;})
5.slice()函數
slice()函數的行為與javascript數組的slice()函數相同。即參數start表示其元素的索引,從0開始。end參數不傳入則表示選取從start以后所有的元素。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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