假设以下情况
<div>
<div1>
<divA>
</divA>
<divB>
</divB>
</div1>
<div2>
</div2>
</div>
我想定位<div1>
,在其上添加addClass()
而不向其子级添加课程。
我尝试使用:nth-child(1)
选择器,或:eq()
(我正在使用Jquery)
。但:nth-child(1)
将该类添加到所有1个子元素中,而:eq()
不适合,因为我希望从其父元素中定位<div1>
。
有人可以帮忙吗?
最佳, Newben
答案 0 :(得分:3)
一个真正的跨浏览器版本:
$('div').children('div1').addClass('la');
如果这些div没有类:
$('div').children().each(function(){
$(this).addClass('la');
break;
});
答案 1 :(得分: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');
答案 2 :(得分:1)
假设您无法编辑标记,则可以对元素运行each()
并仅在第一次应用该类时:
$('div :nth-child(1)').each(function(i, el){
if (i == 0) $(this).addClass('red-border');
});