国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

jQuery 過濾方法filter()選擇具有特殊屬性的元素

2024-05-06 16:07:05
字體:
來源:轉載
供稿:網友
需要選出所有有背景圖片的元素,使用jQuery的DOM過濾方法filter(),可以根據函數中表達的任何條件選擇元素,需要的朋友可以參考下

現在有這樣一種需求,需要選出所有有背景圖片的元素.
這個問題有點棘手.我們無法使用選擇表達式來完成這個問題了.
使用jQuery的DOM過濾方法filter(),可以根據函數中表達的任何條件選擇元素.

jQuery中的過濾器方法允許傳遞一個字符串(也就是選擇器表達式)作為參數.
或者傳遞的是一個函數.它的返回值將定義某個元素是否被選中.
傳遞的函數將對當前選擇集中的每個元素運行.
當函數返回假時,對應的函數就從選擇集中被刪除掉.每當返回值為真的時候,對應的元素
不受影響.

復制代碼 代碼如下:


jQuery('*').filter(function(){
return !!jQuery(this).css('background');
});


上述代碼選擇所有具有背景圖片的元素.
初始集合是所有元素(*).然后以一個函數為參數調用filter().
這個函數在每個集合上進行是否有屬性background屬性的判斷,
如果有,則保留.否則,則在結果集中刪除這個元素.

你所看到的!! 是javascript中間任何undefined ,空類型,當然還有false.
如果函數調用返回的是這些值,那么函數返回false,從而在集合中刪除

沒有background屬性的元素.
實際上,!!并不是必要的.因為jQuery將把這些返回值轉化為Boolean類型.但是保留仍然是一個好的主意.
這樣任何人看到你的代碼的時候,都能絕對肯定你的意圖.(這有助于代碼的可讀性).

在傳遞個filter()的函數中,可以通過this關鍵字引用當前元素.
將它包含在jQuery函數中就變成了一個jQuery對象了.
this //常規的元素對象.
jQuery(this) //jQuery對象.
下面是激發你想象力的一些例子.

復制代碼 代碼如下:


jQuery('div').filter(function(){
var width = jQuery(this).width;
return width >100 && widht < 200;
});
//返回子元素有10個或者20個的元素.
jQuery('*').filter(function(){
var children = jQuery(this).childern().length;
return children ===10 || children ===20;

});


下面是一個代碼例子:判斷有背景顏色的元素,并將它們的背景顏色全部改為黑色。

復制代碼 代碼如下:


<html>
<head>
<title></title>
<style type="text/css">
.c1{
background-color: yellow;
}
.c2{
background-color: green;
}
p{
background-color: pink;
}
h3{
background-color: gray;
}
</style>
</head>
<body>
<div>Bye Bye Beautiful</div>
<div>Nothing but the girl</div>
<p>The Lazy song</p>
<h2>If I die young</h2>
<h3>New soul</h3>
<script type="text/javascript" src="jquery.2.0.3.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
var ret = $('*').filter(function(index) {
return !$(this).css('background-color');
});
$.each(ret, function(index, val) {
$(val).css('background-color','black');
});
});
</script>
</body>
</html>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 洛川县| 定襄县| 库车县| 北流市| 仙居县| 澳门| 庐江县| 留坝县| 海兴县| 教育| 双城市| 石首市| 高雄县| 黎城县| 南昌市| 横峰县| 马尔康县| 库伦旗| 工布江达县| 赤城县| 怀柔区| 新田县| 磴口县| 永昌县| 彩票| 湖南省| 平罗县| 航空| 丹东市| 道孚县| 辉南县| 张家口市| 安龙县| 茂名市| 绵竹市| 望奎县| 福建省| 山东省| 容城县| 营口市| 双鸭山市|