2012-01-19 20 views
54
<div class="second"> 
    <div class="selector" id="selFirst"></div> 
    <div class="selector" id="selSecond"></div> 
    <div></div> 
</div> 

#selFirstを取得するには、IDではなく要素インデックスを使用しますか?Jqueryで子要素をインデックスで取得する方法は?

この:

var $selFirst = $(".second:nth-child(1)"); 
console.log($selFirst); 

が戻っている:

jQuery(div.second) 

答えて

145

あなたが自演した場合あなたが興味を持っている子要素wが最初です:

$('.second').children().first(); 

またはインデックスによって見つける:

$('.second').children().eq(0); 
3

あなたは、インデックスセレクタを介して第一の要素を取得することができます:

$('div.second div:eq(0)') 

コード:http://jsfiddle.net/RX46D/

+1

インデックスセレクタが不良です。代わりにメソッドを使用してください。より速いです。 – Raynos

2
$('.second').find('div:first') 
+0

':最初のセレクタは実行できません。 – Raynos

-7

var node = document.getElementsByClassName("second")[0].firstElementChild

免責事項:getElementsByClassNameブラウザのコンプライアンスとfirstElementChildが不安定です。 DOM-shimはこれらの問題を解決します。

+0

OPが最初のDIVを探している場合、.secondと#selFirstの間にHTML要素があれば、これは機能しません。 – Magrangs

+0

彼はどこで「最初のDIV」と言ったのですか?彼はどこに "〜秒と#selFirstの間に要素がある"と言ったのですか – Raynos

+2

私は "OPの場合....." – Magrangs

1

nth-childは子ではなく兄弟を返しませんか?

var $selFirst = $(".second:nth-child(1)"); 

は、クラス '.second'の最初の要素を返します。

var $selFirst = $(".selector:nth-child(1)"); 

はあなたに

11

をクラスの.selector "の最初の兄弟を与える必要があります

1) $('.second div:first-child')
2) $('.second *:first-child')
3) $('div:first-child', '.second')
4) $('*:first-child', '.second')
5) $('.second div:nth-child(1)')
最初の子を選択するには、次の方法があります。
6) $('.second').children().first()
7) $('.second').children().eq(0)
+1

パフォーマンス比較を知りたいですか? – GollyJer

+0

あなたが提供する選択肢が増えるほど、より多くのアップヴォートが得られます! –