1

假设以下情况

<div>
 <div1>

   <divA>
   </divA>

  <divB>
  </divB>

 </div1>

 <div2>
 </div2>

</div>

我想定位<div1>addClass()在它上面做一个而不给它的孩子添加一个类。

我尝试使用:nth-child(1)选择器,或者:eq()(我正在使用 Jquery) 。但是:nth-child(1)将类添加到所有 1-children 元素并且: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

只需给main parent和第一级 child一个idor 。classdivdiv

例如:

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 回答