これら 2 つの jQuery ステートメントの違いは何ですか? すべての子 div タグを取得することで、同じことをしているようです。
$("#mainblock div")
$("#mainblock > div")
これら 2 つの jQuery ステートメントの違いは何ですか? すべての子 div タグを取得することで、同じことをしているようです。
$("#mainblock div")
$("#mainblock > div")
$("#mainblock > div")
=子供のみのレベル
$("#mainblock div")
=すべての子供+子孫。
jQueryセレクターをご覧ください
Child Selector ("parent > child")
--Hierarchy「parent」で指定された要素の「child」で指定されたすべての直接の子要素を選択します。
Descendant Selector ("ancestor descendant")
-
階層特定の祖先の子孫であるすべての要素を選択します。
$("#mainblock div")
これは、「#mainblock」の直接の子、またはメインブロックの子の子などに関係なく、「#mainblock」内のすべてのDIVを対象とします。
$("#mainblock > div")
これは、「#mainblock」の直接の子DIVのみを対象とし、他のDIVを無視します。直接の子供しかいない場合、これは上記よりも高速です。それは子供の他の要素の中を見つけようとしないからです。
最初のものは、のすべてdiv
の子孫を取得し#mainblock
ます。2つ目div
は、の直接の子であるすべてのを取得します#mainblock
$("#mainblock div") #mainblock の下のすべての div を検索
$("#mainblock > div") はその子のみを見つけました
以下の HTML 構造があるとします。
<div id="mainblock">
<div>
<div></div>
<div></div>
</div>
<div></div>
<div></div>
</div>
それで
$("#mainblock div").length = 5
$("#mainblock > div").length = 3
$("#mainblock div")
#mainblockの子孫である任意のdiv要素に一致します。
$("#mainblock > div")
#mainblockの子である任意のdiv要素に一致します。