首頁 > php教程 > PHP开发 > 主體

概述jQuery的元素篩選

高洛峰
發布: 2016-12-05 15:15:34
原創
1275 人瀏覽過

1、eq()    篩選指定索引號的元素
2、first()  篩選出第一個匹配的元素
3、last()   篩選出最後一個匹配的元素
4、hasClass() hasC() has() 具有含有指定的類別
5、filter()  篩選出與指定表達式匹配的元素集合
6、is()    檢查元素是否參數裡能匹配上的
7、map()
8、has()  篩選篩選上的
7、map()
8、has()  篩選篩選出指定子元素的元素
9、not()  排除能夠被參數中匹配的元素
10、slice()    從指定索引開始,截取指定個數的元素
11、children()  42 、closest()   從目前元素開始,傳回最先配對的符合條件的父元素
13、find()    從指定元素中尋找子元素
14、next() 『   取得指定元素的下一個兄弟🎟 nextAll()   取得其後的所有兄弟元素
16、nextUntil()  取得其後的元素,直到參數能符合上的為止,不包括結束條件那個
17、offsetPosition()  傳回第一個用於定位的祖先元素,即找出祖先元素中position為relative或absolute的元素。
18、parent()   取得指定元素的直接父元素
19、parents()   取得所有指定元素的祖先元素,一直到


20、parentsUntil()  獲取指定元素的祖先元素,知道參數裡能匹配到的為止
21、prev()    獲取指定元素的前一個兄弟元素
22、prevAll()   獲取指定元素前面的所有兄弟元素
23、prevUntil()  獲取指定元素前面的所有兄弟元素
23、prevUntil()  直到參數裡的條件能夠匹配到的。 注意參數條件本身不會被符合
24、siblings()   取得指定元素的兄弟元素,不分前後
25、add()    將選取的元素新增至jQuery物件集合中
26、andSelf() 將選取的元素新增至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()  沒有參數

$("p").first();  
<div>
  <p>我是第一个P</p>  //我的索引值是0,我是第一个,我会被选中
  <p>我是第二个P</p>
  <p>我是第三个P</p>
  <p>我是第四个P</p>
</div> 
登入後複製

   

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

   語法:last() 四頁  檢查匹配的元素是否含有指定的類別

  語法:hasClass(class)  class為類別名稱//傳回布林值

$("p").last();   
<div>
  <p>我是第一个P</p>
  <p>我是第二个P</p>
  <p>我是第三个P</p>
  <p>我是第四个P</p> //我是最后一个,我会被选中
</div> 
登入後複製

 

   

化的集合元素與篩選元素相匹配

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

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>
登入後複製

 

   

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

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

$("p").filter(".p2");
<div>
  <p>我是第一个P</p>
  <p class="p2">我是第二个P</p>  //我会被选中,我的class="p2"
  <p>我是第三个P</p>
  <p>我是第四个P</p>
</div> 
登入後複製

   

七、map()

八、has()  expr:選擇表達式| DOM元素選擇

$($("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> 
登入後複製

   

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

   語法:not(expg; | fn的作用還不清楚

$("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>
登入後複製

 

   

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

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

$("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>
登入後複製

   


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

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

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

$("p").slice(1,3)
<div>
  <p>我是第一个P</p>        //不会被选中,我索引为0
  <p class="p2">我是第二个P</p>  //会被选中,我索引为1
  <p>我是第三个P</p>        //会被选中,我索引为2
  <p>我是第四个P</p>         //不会被选中,虽然我的索引为3,但是不包括我
</div>
登入後複製

   

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

$("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>
登入後複製

 指定元素中尋找子元素

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

$("span").closest("p","div");
<div>                   //不会被选中,被P抢了先机
  <p>我是第一个P            //P会被选中,因为P符合条件,而且是最先匹配到的,虽然div也符合条件了,但是div不是最先匹配到的。因此div不会被选中。
    <span>我是P里的span</span>
  </p>
</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()   获取指定元素的所有祖先元素,一直到

   语法: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>
登入後複製

   



相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!