我有一系列div
,我想选择p
个所有enable
个标签,除了每个div中的最后一个,以便在css中应用特定的样式。内容是动态生成的,可能会因用户而异。
在下面的示例中,我想将此样式应用于第一个div内的前两个p
,而另一个内部则不应用。我确信它很简单,但我找不到任何解决方案来解决它。
<div>
<p class="enable"></p>
<p class="enable"></p>
<p class="enable"></p>
<p class="disable"></p>
</div>
<div>
<p class="enable"></p>
<p class="disable"></p>
<p class="disable"></p>
<p class="disable"></p>
</div>
感谢您的帮助。
答案 0 :(得分:0)
如果p
元素限制为每div
四个元素,则可以使用nth-child
伪选择器。
p.enable:nth-child(-n+2)
{
background: #0f0;
}
p.disable
{
background: #eee;
}
答案 1 :(得分:0)
我有一个Javascript解决方案:
var divs = document.getElementsByTagName("div"), paras, i, j;
for(i = 0; i < divs.length; i++) {
paras = divs[i].getElementsByTagName("p");
for(j = 0; j < paras.length-1; j++) {
if(paras[j+1].className === "disable")
break;
// apply your custom code here
paras[j].style.background = "#FF0000";
}
}
中查看此解决方案