Jquery以元素为目标

时间:2012-06-30 15:56:13

标签: jquery target

假设以下情况

<div>
 <div1>

   <divA>
   </divA>

  <divB>
  </divB>

 </div1>

 <div2>
 </div2>

</div>

我想定位<div1>,在其上添加addClass()而不向其子级添加课程。

我尝试使用:nth-child(1)选择器,或:eq()(我正在使用Jquery) 。但:nth-child(1)将该类添加到所有1个子元素中,而:eq()不适合,因为我希望从其父元素中定位<div1>

有人可以帮忙吗?

最佳, Newben

3 个答案:

答案 0 :(得分:3)

一个真正的跨浏览器版本:

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

如果这些div没有类:

$('div').children().each(function(){
    $(this).addClass('la');
    break;
});

答案 1 :(得分:2)

只需向主要父级id和第一级孩子class提供divdiv

例如:

HTML

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

   <divA>
   </divA>

  <divB>
  </divB>

 </div>

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

</div>

的jQuery

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

Working sample

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

Working sample

答案 2 :(得分:1)

假设您无法编辑标记,则可以对元素运行each()并仅在第一次应用该类时:

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

See demo