DIV内のクラスでアイテムを選択するにはどうすればよいですか?


142

次のHTMLがあります。

<div id="mydiv">
  <div class="myclass"></div>
</div>

内部を選択するセレクターを使用できるようにしたいdivが、mydivコンテナーに固有。jQueryでこれを実現するにはどうすればよいですか?

回答:


285

試してください:

$('#mydiv').find('.myclass');

JS Fiddleデモ

または:

$('.myclass','#mydiv');

JS Fiddleデモ

または:

$('#mydiv .myclass');

JS Fiddleデモ

参照:


find()ドキュメントから学ぶのは良い:

.find()メソッドと.children()メソッドは似ていますが、後者はDOMツリーの1レベル下を移動するだけです。


2
2番目の2つは機能しませんが、わかりました。2番目の2つは、すべてのclass = myclassを選択し、すべてのid = mydivを選択します)と思います。
czupe 2012

2
@czupe:いいえ、コンテキストセレクターのアプローチはjQuery実装によって異なる方法で記述されていますが、内部では$('#mydiv').find('.myclass');、最初のコードスニペットで使用されているのと同じアプローチです。ちなみに、「...すべて選択id=mydiv」?のみが存在する必要があり、これまで与えられたのいずれかの使用であるid(ページ内にid なければなりません文書内で一意です)。
デビッドはモニカを復活させると2013

@DavidThomasまあ、私は$( '#mydiv .myclass');を試しました。その結果、mydiv内のdivだけでなく、クラスmyclassを持つすべてのdivが選択されました。
user3281466 14

@ user3281466:本当に?それはありそうにないようですが、問題再現できますか?
デビッドはモニカを

divで何かをチェックしてから:not()に入れる方法
SuperUberDuper

20

これを試して

$("#mydiv div.myclass")

または、divそれが(または常にであるdiv)かどうかを気にしない場合は、$( "#mydiv .myclass")に簡略化できます。
Michael Mior

@Michael-はい、.mycalssとだけ言うことができますが、divがわかっている場合、div.myclassを使用すると検索が高速になります。
ShankarSangoli 2011

@Shankar、それはおそらくそれをより速くするのではなく、むしろ遅くすることはありません。jqueryがネイティブdocument.queryselectorallではなくシズルを使用すると仮定すると、jqueryはおそらく同じ方法で検索し、追加のチェックを実行します。ネイティブ実装でも同じことが可能です。
davin、2011

私が実行したいくつかの簡単なテストでは、これはブラウザに依存することを示唆しています。Chromeではわずかに速く、FFではわずかに遅く見えました。どちらの方法でも、このセレクターを何度も実行したり、多数の要素に対して実行したりしない限り、その違いはごくわずかです。私の粗雑な(そしておそらく欠陥のある)テストについてはここを参照してください。
Michael Mior

@Michael-クラス名とともにタグ名を指定する場合、最初にgetElementsByTagNameを使用し、次に確実に高速で、ネイティブメソッドを使用して最初のレベルのソートを実行するクラス名を探します。とにかく、選択する要素が少ない場合は無視できます。
ShankarSangoli 2011

11

CSSセレクターを適用するのと同じ方法で行います。瞬間的にはあなたがすることができます

$("#mydiv > .myclass")

または

$("#mydiv .myclass")

最後のものは、myclass内のmyclassを含む、myDiv内のすべてのmyclassに一致します。


6

クラス属性「myclass」を持つすべての要素を選択したい場合

$('#mydiv .myclass');

クラス属性「myclass」を持つdiv要素のみを選択する場合

$("div#mydiv div.myclass");

jqueryセレクターの詳細については、これらの記事を参照してください。


1

代わりにこれを試してください$(".video-divs.focused")。これは、焦点を絞ったvideo-divを探している場合に機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.