ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery でよく使用されるセレクターの詳細な分析

jQuery でよく使用されるセレクターの詳細な分析

黄舟
黄舟オリジナル
2017-07-17 16:12:57949ブラウズ

この記事では、参考のために jQuery の一般的に使用されるセレクターの具体的なコードを共有します。具体的な内容は次のとおりです

1. jQuery: (jQuery を使用する場合は、使用するバージョン番号を指定する必要があります)

ネイティブを使用してカプセル化されます。よく使用されるメソッドの JS クラス ライブラリ (ブラウザーの互換性の問題を解決します)

2. jQuery で提供されるメソッド

selector

対応するルールの内容 (ID、タグ名、スタイル クラス名...) を渡すことで、ページ内の指定された要素/要素のコレクション

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id=&#39;div1&#39;>
    <div>
      <span></span>
      <span></span>
      <span></span>
    </div>
    <div></div>
    <div id=&#39;div3&#39;></div>
    <ul>
      <li></li>
      <li></li>
      <li></li>
    </ul>
 
  </div>
   
 
  <script>
    //原生JS获取到的结果属于元素对象/元素集合/节点集合...他们可以使用浏览器为其提供的那些天生自带的属性和方法
    //原生的JS对象不能直接的使用jQuery中提供的属性和方法
    var oDiv = document.getElementById(&#39;div1&#39;)
    oDiv.clientWidth
    oDiv.getAttribute
    //jq获取到的结果是一个jQuery对象,可以使用jQuery里面提供的属性和方法,但是不能直接的使用浏览器内置的属性和方法
    var $oDiv = jQuery("#div1")//$("#div1")
    $oDiv.innerWidth();
    $oDiv.attr
 
    //关于原生JS对象和jQuery对象之间的转换
      //1)、原生的转变成jQuery:$(原生JS对象)
      $(oDiv)
      //2)、jQuery转化成原生:直接通过索引获取对应的元素对象即可
      $oDiv[0]
      $oDiv.get(0)//<==>$oDiv[0]都是通过索引来获取指定位置的元素(JS原生对象)
 
    //更多的jQuery选择器
    $(&#39;#div1&#39;)
    $(&#39;div&#39;)
    $(&#39;.w100&#39;)
    $(&#39;*&#39;)
    $(&#39;#div1,div,.w100&#39;)//把每一个选择器获取到的jQuery对象最后融合在一起,最后一起获取到
    $(&#39;#div1 li&#39;)//在子子孙孙级中进行查找
    $(&#39;#div1>li&#39;)//在子级中进行查找
    $(&#39;#div3+&#39;)//获取它的下一个弟弟
    $(&#39;#div3+ul&#39;)//获取它的下一个弟弟并且标签名是ul的
    $(&#39;#div3~&#39;)//获取它的所有的弟弟元素
    $(&#39;#div3~ul&#39;)//获取它的所有的弟弟元素并且标签名为ul的
    $(&#39;#div1>div:not(.w100)&#39;)//#div1下的所有子集div样式类名不包含w100的
    $(&#39;#div1>div:eq(0)&#39;)//通过索引获取到集合中的某一个,但是获取到的结果依然是一个jQuery对象(而get方法也是通过索引获取,但是获取到的是一个JS原生对象)
    $(&#39;#div1>div:gt(1)&#39;)//大于索引1的(不包含索引1的)
    $(&#39;#div1>div:lt(1)&#39;)//小于索引1的(不包含索引1的)
    $(&#39;#div1 li:contains("我")&#39;)//获取所有的li内容包含“我” 的
    $(&#39;#div1 div:has(ul)&#39;)//在所有的div中包含ul的
    $(&#39;#div1>*:nth-child(1)&#39;)//获取所有的子元素的第一个
    $(&#39;#div1>*:eq(1)&#39;)//获取所有的子元素的第二个(索引为1)
  </script>
</body>
</html>

要素の選択は、すべての操作の前提条件です。jQuery の $() 関数の最も強力で一般的に使用される関数の 1 つは、セレクターを使用して DOM 要素を選択することです。ここでは、非常に一般的に使用される jquery セレクターの概要をいくつか示します。

1. jQueryセレクターの基本構造

$(&#39;选择器&#39;)
$(&#39;选择器 上下文&#39;)

2. 基本的なcssセレクターの使い方

基本的なcssセレクターについては、cssセレクターの詳細な説明をご覧ください。 CSS セレクターを使用する最も基本的な方法をいくつか紹介します。

2.1 要素セレクター

$(&#39;a&#39;); //选择所有a元素
$(&#39;div&#39;);  //选择所有div元素
$(&#39;p&#39;);  //选择所有p元素

もちろん、必要に応じて、jQuery ではカンマを使用して複数のセレクターを 1 つのセレクターに結合することもできます。

$(&#39;a,div,p&#39;);

これにより、上記の 3 行のコードと同じ効果が得られます。

2.2 クラスセレクター

$(&#39;div.myClass&#39;);  //所有拥有myClass类的div元素
$(&#39;p.myClass&#39;);  //所有拥有myClass类的p元素
$(&#39;*.myClass&#39;);  //拥有myClass类的所有类型元素

通常、特定のカテゴリのすべての要素を選択したい場合は、次のようにワイルドカード * を省略します:

$(&#39;.myClass&#39;);  //拥有myClass类的所有类型元素

これには何も問題はなく、これは私たちの一般的なものでもあります書き方。

さらに、一部の要素には複数のクラスがある場合があります:

$(&#39;div.myClass1.myClass2&#39;);

これは、myClass1 クラスと myClass2 クラスの両方を持つ div 要素を選択します。もちろん、選択された div 要素には他のクラスも含まれる場合があります。つまり、次の div が間違いなく選択されます:

<div class="myClass1 myClass2 myClass3">...</div>

2.3 ID セレクター

$(&#39;table#myID&#39;);  //id为myID的table元素

3 とコンテキスト セレクター

3.1 Descendant を組み合わせます。セレクター

ここから始めて、次のような少し難しい選択を始めます:

$(&#39;ul.myUl li&#39;);

これは、クラス myUl の ul 要素を持つすべての li 子要素を選択します。一口のような音です。以下のコードを見てください:

html

<ul class="myUl">
  <li><a href="#"></a>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
    </ul>
  </li>
  <li>
    <ul>
      <li>one</li>
      <li>two</li>
      <li>three</li>
    </ul>
  </li><ul>

ここでは、$('ul.myUl li') を通じて、すべての li 要素が選択されることに注意してください。すべての li 要素は f60634f48856078cd2fc498343db542a...929d1f5ca49e04fdcb27f9465b944689 の子孫であるためです。直系子孫であっても、孫や曾孫であっても。

実際、上記の例は、myUl クラスの ul 要素のすべての li サブ要素の意味を完全に説明するのに十分ではありません。 myUl クラスには複数の ul 要素が存在する可能性があるため、次のように:

html

<ul class="myUl">
  <li><a href="#"></a>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
    </ul>
  </li>
  <li>
    <ul>
      <li>one</li>
      <li>two</li>
      <li>three</li>
    </ul>
  </li><ul>

    $('ul.myUl li') は、上記のコード内のすべての li 要素も選択します。 ul.myUl は 2 つありますが、上記のコードの li 要素はすべて ul.myUl の子要素であるためです。これで、myUl クラスの ul 要素を持つすべての li サブ要素の意味を理解できるはずです。

    子孫セレクターは、実際には、次のように、特定の要素の子孫だけでなく、特定の要素の子孫の子孫 (少しぎこちなく聞こえます) も選択できます:

    $(&#39;ul.myUl li a&#39;);

    このように、すべての li の子孫myUl クラスの ul 要素が選択されます。 xx の子孫はもう 1 人いますが、上記の分析と同じですので、詳細は説明しません。

    以上がjQuery でよく使用されるセレクターの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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