ホームページ  >  記事  >  php教程  >  jQueryの要素フィルタリングの概要

jQueryの要素フィルタリングの概要

高洛峰
高洛峰オリジナル
2016-12-05 15:15:341296ブラウズ

1, eq() 指定したインデックス番号の要素を除外
2, first() 最初に一致した要素を除外
3, last() 最後に一致した要素を除外
4, hasClass() 一致する要素があるかどうかを確認is 指定されたクラスが含まれます
5、filter() 指定された式に一致する要素のセットをフィルタリングします
6、is() 要素がパラメータに一致するかどうかを確認します
7、map()
8、has() フィルタリングしますを含むセット 子要素の要素を指定
9, not() パラメータで一致する要素を除外
10,slice() 指定されたインデックスから開始して、指定された数の要素をインターセプト
11, Children() フィルタ指定された要素のリソースを取得します
12 、most() 現在の要素から開始して、条件を満たす最初に一致する親要素を返します
13 指定された要素から子要素を検索します
14指定した要素の次の兄弟要素を取得
15. nextAll() 後続の兄弟要素をすべて取得
16, nextUntil() 終了条件を除いてパラメータが一致するまで後続の要素を取得
17, offsetPosition() 最初の祖先を返す要素の位置決めに使用されます。つまり、祖先要素の中で相対的または絶対的な位置にある要素を検索します。
18.parent() 指定された要素の直接の親要素を取得します
19.parents()6c04bd5ca3fcae76e30b72ad730ca86d36cc49f0c466276486e50c850b7e4956までの祖先要素を取得します
20.パラメータが一致するまで、指定された要素の要素を取得します
21. prev() 指定された要素の前の兄弟要素を取得します
22. prevAll() 指定された要素の前の兄弟要素をすべて取得します
23.パラメータの条件が一致するまで、指定された要素要素の前の兄弟。 パラメータの条件自体は一致しないので注意してください
24. sinners() 前後関係なく、指定した要素の兄弟要素を取得します
25. add() 選択した要素をjQueryオブジェクトのコレクションに追加します
26. ) 選択された jQuery コレクションに自身を追加し、1 回限りの操作を容易にします
27. end() 現在のセレクターの選択を前の状態に変更する操作をロールバックします。
28、内容 理解できません

****************************** フィルター*********** ******* *************************

1. 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> 


2.first( ) 最初に一致する要素をフィルターで除外します

構文: first() このメソッドにはパラメーターがありません

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

3. last() 最後に一致する要素をフィルターで除外します

構文: last() このメソッドにはパラメーターがありません

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

4. hasClass() 一致する要素に指定されたクラスが含まれているかどうかを確認します

構文: hasClass(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>


5. フィルター() 指定された式に一致する要素のセットをフィルターで除外します

構文: filter (expr|obj|ele|fn) expr: 一致する式 obj: 既存の要素と一致するために使用される jQuery オブジェクト DOM: 一致するために使用される DOM 要素 | | 関数の戻り値を一致条件として

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


6. is() 要素がパラメータで一致するかどうかを確認します

構文: is(expr|obj|ele|fn) expr: 一致する式| obj: 既存の要素の照合に使用される jQuery オブジェクト | DOM: 照合条件としての関数の戻り値

7. map()

8. has() を含む要素を除外します指定されたサブ要素

構文: has(expr|ele) expr: 選択式 | DOM 要素の選択

9. not() パラメーター内で一致する要素を除外します

構文: not( expr|ele|fn) expr: 選択式 | DOM 要素の選択 | fn の機能はまだ不明


10. 指定されたインデックスから開始して、指定された数の要素を切り取る

構文:slice(start, [end]) 開始位置、終了 終了位置を除いた終了位置を選択します。指定しない場合は、最後のものが一致します。

$($("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> 

************************ フィルター****************** ****** *************

11. Children() 指定された要素のリソースを取得するフィルター

構文: Children(expr); element、expr は子要素のフィルタリング条件です

$("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>

12.most() 現在の要素から開始して、条件を満たす最初に一致する親要素を返します

$("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>


13 . find() 指定された要素から子要素を検索します

構文: find(expr|obj|ele) expr: 一致する DOM 要素に使用される jQuery オブジェクト

十四、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()      获取指定元素的所有祖先元素,一直到6c04bd5ca3fcae76e30b72ad730ca86d36cc49f0c466276486e50c850b7e4956

   语法: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>

   



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。