我想要使用nth-child
来应用background-color
的几个元素。问题是我需要能够使用javascript动态隐藏这些元素中的任何一个。我认为我可以通过添加/删除allow
类来保持交替颜色,并将nth-child
应用于此类,但无济于事。我有一个例子进入jsfiddle。
http://jsfiddle.net/tL40wz03/
谢谢你的帮助!
HTML
<div class="item allow"></div>
<div class="item allow"></div>
<div class="item allow"></div>
<div class="item allow"></div>
<div class="item allow"></div>
<div class="item allow"></div>
<div class="item allow"></div>
<div class="item"></div>
<div class="item allow"></div>
<div class="item"></div>
<div class="item allow"></div>
CSS
div {
display: block;
height: 100px;
width: 100px;
}
div.allow{
background: gray;
}
div:nth-child(even){
background: orange;
}
div:not(.allow){
display:none;
}
答案 0 :(得分:0)
你需要JS,比如
function markEven() {
var items= document.querySelectorAll('div.item');
var count = 0;
for (var i = 0; i < items.length; i++) {
var classes = items[i].classList;
classes.toggle('even', classes.contains('allow') && ++count % 2);
}
}
每次在元素中添加或删除allow
时都会调用此方法。
然后
div.item { display: none; background: gray; }
div.item.allow { display: block; }
div.item.even { background: orange; }