jQuery 遍歷- 過濾

搜尋元素的範圍

三個最基本的過濾方法是:first(), last() 和eq(),它們允許您基於其在一組元素中的位置來選擇一個特定的元素。

其他篩選方法,例如 filter() 和 not() 可讓您選取符合或不符合某項指定標準的元素。


first() 方法

first() 方法傳回被選取元素的首個元素。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("div p").first().css("background-color","blue");
});
</script>
</head>
<body>
    <div>
        <p>段落1</p>
    </div>
    <div>
        <p>段落2</p>
    </div>
    <p>段落3</p>
</body>
</html>

選取首個 <div> 元素內部的第一個 <p> 元素。


last() 方法

last() 方法傳回被選取元素的最後一個元素。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("div p").last().css("background-color","red");
});
</script>
</head>
<body>
    <div>
        <p>段落1</p>
    </div>
    <div>
        <p>段落2</p>
    </div>
    <p>段落3</p>
</body>
</html>

選擇最後一個 <div> 元素中的最後一個 <p> 元素。


eq() 方法

eq() 方法傳回被選元素中帶有指定索引號碼的元素。

索引號碼從 0 開始,因此首個元素的索引號碼是 0 而不是 1。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("p").eq(1).css("background-color","green");
});
</script>
</head>
<body>
    <p>php中文网 (index 0).</p>
    <p>http://www.php.cn (index 1)。</p>
    <p>google (index 2).</p>
    <p>http://www.google.com (index 3)。</p>
</body>
</html>

選取第二個 <p> 元素(索引號 1)。


filter() 方法

filter() 方法允許您規定一個標準。不符合這個標準的元素會被從集合中刪除,符合的元素會被回傳。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
   $("p").filter(".url").css("background-color","yellow");
});
</script>
</head>
<body>
    <p>php中文网 (index 0).</p>
    <p class="url">http://www.php.cn (index 1)。</p>
    <p>google (index 2).</p>
    <p class="url">http://www.google.com (index 3)。</p>
</body>
</html>

傳回所有有類別名稱 "url" 的 <p> 元素。


not() 方法

not() 方法傳回不符合標準的所有元素。

提示:not() 方法與 filter() 相反。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
   $("p").not(".url").css("background-color","gray");
});
</script>
</head>
<body>
    <p>php中文网 (index 0).</p>
    <p class="url">http://www.php.cn (index 1)。</p>
    <p>google (index 2).</p>
    <p class="url">http://www.google.com (index 3)。</p>
</body>
</html>

傳回所有不帶有類別名稱 "url" 的 <p> 元素。


繼續學習
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("li").eq(-1).css({"color":"red","border":"2px solid blue"}) }) </script> </head> <body> <div> <ul> <li>HTML专区</li> <li>Javascript专区</li> <li>Div+Css专区</li> <li>Jquery专区</li> </ul> <p> eq 是负数的时候,从最后一个元素往回计数。</p> </div> </body> </html>