DIV CSS 佈局教程網

概述jQuery的元素篩選
編輯:JQuery入門技巧     

1、eq()    篩選指定索引號的元素
2、first()  篩選出第一個匹配的元素
3、last()   篩選出最後一個匹配的元素
4、hasClass()  檢查匹配的元素是否含有指定的類
5、filter()  篩選出與指定表達式匹配的元素集合
6、is()    檢查元素是否參數裡能匹配上的
7、map()
8、has()  篩選出包含指定子元素的元素
9、not()  排除能夠被參數中匹配的元素
10、slice()    從指定索引開始,截取指定個數的元素
11、children()  篩選獲取指定元素的資源
12、closest()   從當前元素開始,返回最先匹配到的符合條件的父元素
13、find()    從指定元素中查找子元素
14、next()     獲取指定元素的下一個兄弟元素
15、nextAll()   獲取其後的所有兄弟元素
16、nextUntil()  獲取其後的元素,直到參數能匹配上的為止,不包括結束條件那個
17、offsetPosition()  返回第一個用於定位的祖先元素,即查找祖先元素中position為relative或absolute的元素。
18、parent()   獲取指定元素的直接父元素
19、parents()   獲取指定元素的所有祖先元素,一直到<body></body>
20、parentsUntil()  獲取指定元素的祖先元素,知道參數裡能匹配到的為止
21、prev()    獲取指定元素的前一個兄弟元素
22、prevAll()   獲取指定元素前面的所有兄弟元素
23、prevUntil()   獲取指定元素前面的所有兄弟元素,直到參數裡的條件能夠匹配到的。 注意參數條件本身不會被匹配
24、siblings()   獲取指定元素的兄弟元素,不分前後
25、add()    將選中的元素添加到jQuery對象集合中
26、andSelf()  將自身加到選中的jQuery集合中,以方便一次性操作
27、end()     將改變當前選擇器選中的操作回退為上一個狀態。
28、contents  未明白

************************* 篩選 ************************************

一、eq()  篩選指定索引號的元素

  語法:eq(index|-index)  索引號從0開始,若為負值,則從最後一個開始倒數,最後一個從-1開始

  $("p").eq(1);  //如果選擇器改為 $("p").eq(-1),則我是第四個P會被選中
    
  <div>
    <p>我是第一個P</p>
    <p>我是第二個P</p>  //會被選中,索引值為1
    <p>我是第三個P</p>
    <p>我是第四個P</p>
  </div>  

二、first()  篩選出第一個匹配的元素

  語法:first()  此方法沒有參數

  $("p").first();  
  <div>
    <p>我是第一個P</p>  //我的索引值是0,我是第一個,我會被選中
    <p>我是第二個P</p>
    <p>我是第三個P</p>
    <p>我是第四個P</p>
  </div> 

 三、last()  篩選出最後一個匹配的元素

   語法:last()  此方法沒有參數

  $("p").last();   
  <div>
    <p>我是第一個P</p>
    <p>我是第二個P</p>
    <p>我是第三個P</p>
    <p>我是第四個P</p> //我是最後一個,我會被選中
  </div> 

四、hasClass()  檢查匹配的元素是否含有指定的類

  語法:hasClass(class)  class為類別名  //返回布爾值

 if($("p").hasClass("p2"))
  {
    alert("我裡面含有class=p2的元素");  //會彈出,p裡的確存在class="p2"的元素
  } 
  <div>
    <p>我是第一個P</p>
    <p class="p2">我是第二個P</p>
    <p>我是第三個P</p>
    <p>我是第四個P</p>
  </div> 

 五、filter()  篩選出與指定表達式匹配的元素集合

  語法:filter(expr|obj|ele|fn)  expr:匹配表達式|obj:jQuery對象,用於匹配現有元素 | DOM:用於匹配的DOM元素 | function返回值作為匹配條件

  $("p").filter(".p2");
  <div>
    <p>我是第一個P</p>
    <p class="p2">我是第二個P</p>  //我會被選中,我的class="p2"
    <p>我是第三個P</p>
    <p>我是第四個P</p>
  </div>  

 六、is()    檢查元素是否參數裡能匹配上的

  語法:is(expr|obj|ele|fn)  expr:匹配表達式|obj:jQuery對象,用於匹配現有元素 | DOM:用於匹配的DOM元素 | function返回值作為匹配條件

  $($("p").first().is(".p2"))
  {
    alert("不會彈出,因為第一個P的class不等於p2"); 
  }
  <div>
    <p>我是第一個P</p>
    <p class="p2">我是第二個P</p>  //我會被選中,我的class="p2"
    <p>我是第三個P</p>
    <p>我是第四個P</p>
  </div> 

七、map()

八、has()  篩選出包含指定子元素的元素

  語法:has(expr|ele)  expr:選擇表達式 | DOM元素選擇

  $("div").has("p");
  <div>                 //本div會被選中,因為該div含有p子元素
    <p>我是第一個P</p>
    <p class="p2">我是第二個P</p>
    <p>我是第三個P</p>
    <p>我是第四個P</p>
  </div>
  <div>
    <span>我是一個span</spam>
  </div>

九、not()  排除能夠被參數中匹配的元素

   語法:not(expr|ele|fn)  expr:選擇表達式 | DOM元素選擇 | fn的作用還不清楚

  $("p").not(".p2");
  <div>
    <p>我是第一個P</p>        //會被選中,沒有class=p2
    <p class="p2">我是第二個P</p>  //不會被選中,因為有class=p2被not(".p2")排除了
    <p>我是第三個P</p>        //會被選中,沒有class=p2
    <p>我是第四個P</p>         //會被選中,沒有class=p2
  </div>  

 十、slice()  從指定索引開始,截取指定個數的元素

   語法:slice(start, [end])   start位置, end可選,結束位置,不包含結束位置那個。如果不指定,則匹配到最後一個。

  $("p").slice(1,3)
  <div>
    <p>我是第一個P</p>        //不會被選中,我索引為0
    <p class="p2">我是第二個P</p>  //會被選中,我索引為1
    <p>我是第三個P</p>        //會被選中,我索引為2
    <p>我是第四個P</p>         //不會被選中,雖然我的索引為3,但是不包括我
  </div> 

********************** 篩選 *********************************

十一、children()  篩選獲取指定元素的資源

   語法:children(expr);  獲取指定元素的資源,expr為子元素篩選條件

  $("div").children(".p2");
 
  <div>
    <p>我是第一個P</p>        //不會被選中,雖然我是div的子元素,但是我沒class=p2
    <p class="p2">我是第二個P</p>  //會被選中,我既是p的子元素,又有class=p2
    <p>我是第三個P</p>        //不會被選中,雖然我是div的子元素,但是我沒class=p2
    <p>我是第四個P</p>         //不會被選中,雖然我是div的子元素,但是我沒class=p2
  </div> 

 十二、closest()  從當前元素開始,返回最先匹配到的符合條件的父元素

  $("span").closest("p","div");
  <div>                   //不會被選中,被P搶了先機
    <p>我是第一個P            //P會被選中,因為P符合條件,而且是最先匹配到的,雖然div也符合條件了,但是div不是最先匹配到的。因此div不會被選中。
      <span>我是P裡的span</span>
    </p>
  </div>  

十三、find()    從指定元素中查找子元素

   語法:find(expr|obj|ele)  expr:匹配表達式 | obj用於匹配的jQuery對象 | DOM元素

  $("div").find(".p2");    
  <div>
    <p>我是第一個P</p>        //不會被選中,雖然我是div的子元素,但是我沒class=p2
    <p class="p2">我是第二個P</p>  //會被選中,我既是p的子元素,又有class=p2
    <p>我是第三個P</p>        //不會被選中,雖然我是div的子元素,但是我沒class=p2
    <p>我是第四個P</p>         //不會被選中,雖然我是div的子元素,但是我沒class=p2
  </div>  

十四、next()    獲取指定元素的下一個兄弟元素

   語法:next(expr)  expr:可選,篩選條件,如果下一個兄弟元素不符合改條件,則返回空。

  $(".p2").next();    //如果篩選改為$(".p2").next(".p4")那選中的是哪個呢?答案是:沒選中任何元素,因為雖然有個class=p4的P,但它不是.p2的下一個。      
  <div>
    <p>我是第一個P</p>        
    <p class="p2">我是第二個P</p>  
    <p>我是第三個P</p>        //我是.p2的next
    <p class="p4">我是第四個P</p>
  </div>  

十五、nextAll()    獲取其後的所有兄弟元素

    語法:nextAll(expr)  expr:可選,篩選條件,獲取其後符合expr條件的所有兄弟元素

  $(".p2").nextAll();  //如果篩選條件改為 $(".p2").nextAll(".p4");  則只有我是第四個P會被選中
  <div>
    <p>我是第一個P</p>        
    <p class="p2">我是第二個P</p>  
    <p>我是第三個P</p>        //會被選中,是.p2後面的兄弟元素
    <p class="p4">我是第四個P</p> //會被選中,是.p2後面的兄弟元素
  </div>  

十六、nextUntil()  獲取其後的元素,直到參數能匹配上的為止,不包括結束條件那個

   語法:nextUntil([expr|ele][,fil])  expr篩選表達式 | DOM元素篩選,注意不包括參數裡的那一個

  $(".p2").nextUntil(".p4");    //注意此方法並不會包括.p4
  <div>
    <p>我是第一個P</p>        
    <p class="p2">我是第二個P</p>  
    <p>我是第三個P</p>        //會被選中,是.p2後面的兄弟元素
    <p class="p4">我是第四個P</p> //不會被選中,我作為結束條件,但不包括我
  </div> 

十七、offsetPosition()  返回第一個用於定位的祖先元素,即查找祖先元素中position為relative或absolute的元素。

   語法:offsetPosition()  此方法沒有參數  由於CSS的絕對定位的定位基准是相對最近的一個已定位元素,因此此方法的作用不言而喻。

  $("span").offsetParent();
  <div style="position:relative">  //選中的是div,因此div是已定位元素。
    <p>
      <span>我是一個span</span>
    </p>
  </div>

 十八、parent()    獲取指定元素的直接父元素

    語法:parent(expr)  expr為篩選條件,如果直接父元素不符合條件,則不返回任何元素(無論它的祖先是否具有能與expr匹配的)

  $("span").parent();
  <div style="position:relative">  
    <p>                //我是span的直接父元素,我會被匹配到
      <span>我是一個span</span>
    </p>
  </div>

十九、parents()      獲取指定元素的所有祖先元素,一直到<body></body>

   語法:parents(expr)  expr為篩選條件,如果某個祖先元素不符合expr則排除

  $("span").parents();
  <div style="position:relative">  //我是span的祖先元素,我也會被匹配到.另外<body></body>也會被匹配到  
    <p>                //我是span的直接父元素,我會被匹配到
      <span>我是一個span</span>
    </p>
  </div>

二十、parentsUntil()  獲取指定元素的祖先元素,知道參數裡能匹配到的為止

   語法:parentsUntil(expr)  expr為停止參數,一直匹配到expr為止,同時參數的條件是不會被匹配中的。

  $("span").parentsUntil("div");
  <div style="position:relative">  //我是span的祖先元素,但是我作為停止條件,我也不會被選中  
    <p>                //我是span的直接父元素,我會被選中
      <span>我是一個span</span>
    </p>
  </div>

 二十一、prev()    獲取指定元素的前一個兄弟元素

    語法:prev(expr)    expr:可選。當上一個兄弟元素不符合參數中的條件時,不返回任何元素。

  $(".p2").prev();    
  <div>
    <p>我是第一個P</p>      //我會被選中,我是.p2的前一個元素。
    <p class="p2">我是第二個P</p>  
    <p>我是第三個P</p>        
    <p class="p4">我是第四個P</p> 
  </div> 

二十二、prevAll()  獲取指定元素前面的所有兄弟元素

    語法:prevAll(expr)  expr:可選,排除所有不能夠被expr匹配上的元素

  $(".p4").prevAll(".p2");    
  <div>
    <p>我是第一個P</p>        //不會被選中,雖然我是.p4前面的兄弟元素,但是我沒有class=p2
    <p class="p2">我是第二個P</p>  //會被選中,我既是.p4前面的兄弟元素,而且我有class=p2
    <p>我是第三個P</p>        //不會被選中,雖然我是.p4前面的兄弟元素,但是我沒有class=p2
    <p class="p4">我是第四個P</p>  
  </div>

二十三、prevUntil()  獲取指定元素前面的所有兄弟元素,直到參數裡的條件能夠匹配到的。 注意參數條件本身不會被匹配

    語法:prevUntil([expr|ele][,fil])  expr匹配表達式 | DOM元素匹配

  $(".p4").prevUntil(".p2");    
  <div>
    <p>我是第一個P</p>        //不會被選中,到p2就停止了
    <p class="p2">我是第二個P</p>  //不會被選中,我是停止條件,不包括我
    <p>我是第三個P</p>        //會被選中,我在.p2前,遞歸到我在到.p2
    <p class="p4">我是第四個P</p>  //不會被選中,我自己怎麼可能是我自己前面的呢?
  </div>

/********************  串聯 *******************************/

二十四、siblings()  獲取指定元素的兄弟元素,不分前後

    語法:siblings(expr);  expr為篩選條件,不符合條件的不會選中

  $(".p2").siblings();    
  <div>
    <p>我是第一個P</p>        //會被選中,我是.p2的兄弟元素
    <p class="p2">我是第二個P</p>  //不會被選中,我是自己
    <p>我是第三個P</p>        //會被選中,我是.p2的兄弟元素
    <p class="p4">我是第四個P</p>  //會被選中,我是.p2的兄弟元素
  </div>

二十五、add()  將選中的元素添加到jQuery對象集合中

    add(expr|elements|html|jQueryObject)  expr:選擇器表達式 | DOM表達式 | Html片段 | jQuery對象,將jQuery對象集合一起方便操作;

  $(".p2").add("span").css("background-color","red");    
  <div>
    <p>我是第一個P</p>        
    <p class="p2">我是第二個P</p>  //會變紅
    <p>我是第三個P</p>        
    <p class="p4">我是第四個P</p>  
  </div>
  <span>我是一個span</span>      //會變紅

二十六、andSelf()  將自身加到選中的jQuery集合中,以方便一次性操作

    andSelf()  此方法無參數

  $(".p2").nextAll().andSelf().css("background-color","red");
  <div>
    <p>我是第一個P</p>        
    <p class="p2">我是第二個P</p>  //會變紅,這就是andSelf()的效果
    <p>我是第三個P</p>        //會變紅
    <p class="p4">我是第四個P</p>  //會變紅
  </div>

二十七、end()      將改變當前選擇器選中的操作回退為上一個狀態。

    end()   此方法沒有參數

  $(".p2").next().end().css("background-color","red");
  <div>
    <p>我是第一個P</p>        
    <p class="p2">我是第二個P</p>  //會變紅,這就end()的效果
    <p>我是第三個P</p>        //不會變紅,盡管next()方法之後選中的是這一個,但是由於被end()方法回退了因此是上一個。
    <p class="p4">我是第四個P</p>
  </div>

 二十八、contents  未明白

以上就是本文的全部內容,有問題的可以和小編聯系,謝謝對的支持!

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved