1

次の状況を想定します

<div>
 <div1>

   <divA>
   </divA>

  <divB>
  </divB>

 </div1>

 <div2>
 </div2>

</div>

子にクラスを追加せずにターゲット<div1>にして、それを作成したいと思います。addClass()

セレクターを使用しようとしました:nth-child(1)、または:eq()(Jqueryを使用しています)。しかし、:nth-child(1)はすべての1子要素にクラスを追加し、その親要素から:eq()ターゲットを設定したいので適合しません。<div1>

誰か助けてもらえますか?

最高、ニューベン

4

3 に答える 3

3

真のクロスブラウザバージョンも:

$('div').children('div1').addClass('la');

そして、これらのdivにクラスがない場合:

$('div').children().each(function(){
    $(this).addClass('la');
    break;
});
于 2012-06-30T16:03:04.977 に答える
2

idまたはclassをメインの親divと最初のレベルの子に与えるだけdivです。

例えば:

HTML

<div id="main">
 <div class="div1">

   <divA>
   </divA>

  <divB>
  </divB>

 </div>

 <div class="div2">
 </div>

</div>

jQuery

$('#main .div1').addClass('something');

作業サンプル

また

$('#main div:eq(0)').addClass('something');

作業サンプル

于 2012-06-30T15:57:37.293 に答える
1

それ以外の方法でマークアップを編集できないと仮定するとeach()、要素に対してを実行して、クラスを最初に適用するだけで済みます。

​$('div :nth-child(1)').each(function(i, el){
    if (i == 0) $(this).addClass('red-border');​​​​​​​​​​​​​​​​​​​​
});

デモを見る

于 2012-06-30T16:05:31.173 に答える