很多時候我們不能直接通過基本選擇器與層級選擇器找到我們想要的元素,爲此jQuery提供了一系列的篩選選擇器用來更快捷的找到所需的DOM元素。篩選選擇器很多都不是CSS的規範,而是jQuery自己爲了開發者的便利延展出來的選擇器
篩選選擇器的用法與CSS中的僞元素相似,選擇器用冒號“:”開頭。我們通過一個列表,來看看基本篩選器的描述
注意:
- eq(), :lt(), :gt(), :even, :odd 用來篩選他們前面的匹配表達式的集合元素,根據之前匹配的元素在進一步篩選,注意jQuery合集都是從0開始索引
:gt()是一個段落篩選,從指定索引的下一個開始,gt(1) 實際從2開始
下面我們看實例:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" href="imooc.css" type="text/css">
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>
<body>
<h2>基本篩選器</h2>
<h3>:first/:last/:even/:odd</h3>
<div class="left">
<div class="div">
<p>div:first</p>
<p>:even</p>
</div>
<div class="div">
<p>:odd</p>
</div>
<div class="div">
<p>:even</p>
</div>
<div class="div">
<p>:odd</p>
</div>
<div class="div">
<p>:even</p>
</div>
<div class="div">
<p>div:last</p>
<p>:odd</p>
</div>
</div>
<script type="text/javascript">
找到第一個div
$(".div:first").css("color", "#CD00CD");
</script>
<script type="text/javascript">
//找到最後一個div
$(".div:last").css("color", "#CD00CD");
</script>
<script type="text/javascript">
//:even 選擇所引值爲偶數的元素,從 0 開始計數
$(".div:even").css("border", "3px groove red");
</script>
<script type="text/javascript">
//:odd 選擇所引值爲奇數的元素,從 0 開始計數
$(".div:odd").css("border", "3px groove blue");
</script>
<h3>:eq/:gt/:lt</h3>
<div class="left">
<div class="aaron">
<p>:lt(3)</p>
</div>
<div class="aaron">
<p>:lt(3)</p>
</div>
<div class="aaron">
<p>:eq(2)</p>
</div>
<div class="aaron">
</div>
<div class="aaron">
<p>:gt(3)</p>
</div>
<div class="aaron">
<p>:gt(3)</p>
</div>
</div>
<script type="text/javascript">
//:eq
//選着單個
$(".aaron:eq(2)").css("border", "3px groove blue");
</script>
<script type="text/javascript">
//:gt 選擇匹配集合中所有索引值大於給定index參數的元素
$(".aaron:gt(3)").css("border", "3px groove blue");
</script>
<script type="text/javascript">
//:lt 選擇匹配集合中所有索引值小於給定index參數的元素
//與:gt相反
$(".aaron:lt(2)").css("color", "#CD00CD");
</script>
<h3>:not</h3>
<div class="left">
<div>
<input type="checkbox" name="a" />
<p>Aaron</p>
</div>
<div>
<input type="checkbox" name="b" />
<p>慕課</p>
</div>
<div>
<input type="checkbox" name="c" checked="checked" />
<p>其他</p>
</div>
</div>
<script type="text/javascript">
//:not 選擇所有元素去除不匹配給定的選擇器的元素
//選取所有input中,沒有checked屬性的p元素,賦予顏色
$("input:not(:checked)+p").css("background-color", "#CD00CD");
</script>
</body>
</html>
執行結果如下: