2016-11-10 3 views
0

私は1つのID(メイン)しか持っていません。jQueryを使用して子孫にアクセスするにはどうすればよいですか?

私は()の.cssを設定しようとしていると、 "メイン[0] - >サブ[0] - >左の[0]" あなたは以下を参照することができますよう:

<div id="main"> 

    <div class="sub"> 
     <div class="left"> 
      <div class="subsub"> 
       main[0]->sub[0]->left[0] 
      </div> 
      <div class="subsub"> 
       main[0]->sub[0]->left[1] 
      </div> 
     </div> 
     <div class="right"> 
      main[0]->sub[1] 
     </div> 
    </div> 

    <div class="sub"> 
     <div class="left"> 
      <div class="subsub"> 
       main[1]->sub[0]->left[0] 
      </div> 
      <div class="subsub"> 
       main[1]->sub[0]->left[1] 
      </div> 
     </div> 
     <div class="right"> 
      main[1]->sub[1] 
     </div> 
    </div> 

</div> 

私がアクセスできます最初のMAINの子供この方法:

$($('#main').children()[0]).css('MY CSS...'); 

及び第2の主の子供この方法:

$($('#main').children()[1]).css('MY CSS...'); 

しかし、どのように私は "サブ" クラスの子にアクセスすることができますか?

答えて

1

すべてのjQuery要素には$.children()メソッドがあります。最初のセレクタ:だから、それはあなたが$("#main .left .subsub").css()

1

.findとの組み合わせを使用して行うことができます要素に適用されているCSSルールの同じセットの場合は、しかし、$($($('#main').children()[0]).children[0]).css()

を行うことができます。 $('.subsub:first-child').css()が同様に機能するであろうと、最も効率的な(または唯一のセレクタ)ではありません

$('#main .sub .left :first-child').css('color', 'red');

$('#main').find(".subsub:first") 
1

はここで両方の最初の子を見つけることができるシズルセレクタです。これを何回行っているかによって、親をキャッシュして使用する方が効率的です.children()this answer.

関連する問題