我有以下代码,我想使用class=title
选择特定的nth-child
,但它确实有效
<div class="block">
<div class="title"></div> <!-- first title here !-->
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="title"></div> <!-- second title here !-->
<div class="item"></div>
<div class="title"></div> <!-- third title here !-->
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
测试1
.title:nth-child(3){
background-color: red;
}
预期结果Third title highlighted
但实际输出为no highlight is done
测试2
.title:nth-child(1){
background-color: red;
}
预期结果First title highlighted
实际输出为first title is highlighted
我不确定为什么它不能与另一个孩子一起工作,而它只适用于第一个孩子..
答案 0 :(得分:2)
如果您确实想要选择div.block
的第三个孩子,并且班级名称为.title
,那么您必须知道child index position。在这种情况下, SEVEN 不是 THREE 。所以,你需要做以下的事情:
.title:nth-child(7){
background-color: red;
}
<强> Working Fiddle 强>
简而言之,title
位置3
上没有上课div.block
的孩子。
<强>更新强>:
在不知道子元素是否存在于指定位置或使用CSS的情况下,无法选择子元素。但是可以使用jQuery
。
$('.title:eq(2)') //This will search for the third child with the class .title
答案 1 :(得分:1)
使用:nth-child(n),
计算所有子项,无论它们是什么,只有在与附加到伪类的选择器匹配时才选择指定的元素。
使用:eq(n)
时,只计算附加到伪类的选择器,不限于任何其他元素的子项,并且选择(n+1)
个(n为0)。 / p>
所以$('.block .title:eq(2)').css('background-color','Red');
有效。
答案 2 :(得分:1)
选择器.title:nth-child(3)
并不意味着“具有title
属性的元素中的第3个”。而是匹配具有title
属性并且是第3个子元素的元素它的父母。
CSS中没有“其类的第n个”选择器。您可以考虑使用JavaScript解决方法。但是使用像title
这样的类名称表明这些元素应该真正标记为某个级别的标题,例如作为h2
代替div
。这样做,您可以删除class属性并使用h2:nth-of-type(3)
等选择器。
答案 3 :(得分:1)
只有当您拥有以下结构时,测试1 才有效:
<div class="title"></div>
<div class="title"></div>
<div class="title"></div>
.title:nth-child(3){
background-color: red;
}
答案 4 :(得分:1)
使用此$('.title').siblings(':eq(3)').css('background-color', 'red');
甚至更好
$('.title').siblings('.title:eq(0)').css('background-color', 'red');
此外,如果你想知道为什么你的选择器不起作用,我引用w3school
:nth-child(n)选择器匹配第n个元素 孩子,无论其类型如何,都是其父母。
n可以是数字,关键字或公式。
所以在你的情况下
.title:nth-child(5){
background-color: red;
}
这将完美地运作
答案 5 :(得分:1)
使用class =“title”突出显示第1个div:
$('div.title:eq(0)').css('background-color','red');
使用class =“title”突出显示第二个div:
$('div.title:eq(1)').css('background-color','red');
使用class =“title”突出显示第3个div:
$('div.title:eq(2)').css('background-color','red');
答案 6 :(得分:0)
您可以使用.eq()
jQuery方法。
$('.block div.title:eq(0)').css('background-color','red');
答案 7 :(得分:0)
答案 8 :(得分:0)
.title:nth-child(3)
表示 element with class 'title' which is the third child of it's parent
。它不是 which is the third element with that class
。
实际上,您无法使用纯CSS选择 the third element with that class
。
您可以使用jQuery
脚本,使用以下选择器:
$('.title:eq(2)')
答案 9 :(得分:0)
这很有趣。好像那里有一个序列n + 1。从1开始,它将选择所有后续类。给你。
.block .title:nth-child(n+1){
background-color:red;
}
<div class="block">
<div class="title">1</div> <!-- first title here !-->
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="title">5</div> <!-- second title here !-->
<div class="item">6</div>
<div class="title">7</div> <!-- third title here !-->
<div class="item">8</div>
<div class="item">9</div>
</div>
答案 10 :(得分:-1)
使用
.title:first-of-type{
color:#478547;
}
和
:nth-of-type()
选择标题类