[英]change background every <li> generated
每当有人添加项目时,我都有一个由javascript生成的列表:html看起来像这样:
<ul class="items-listed-rc">
<li>1 generated by javascript</li>
<li>2 generated by javascript</li>
<li>3 generated by javascript</li>
<li>4 generated by javascript</li>
...
</ul>
目前所有的都是蓝色背景,我想
您可以使用CSS选择器nth-child:
.items-listed-rc li:nth-child(even){
background:red;
}
编辑
正如杰伊·哈里斯(Jay Harris)所提到的,IE8和更低版本不支持CSS选择器nth-child。 您可以使用jQuery:
$(document).ready(function() {
$(".items-listed-rc li:nth-child(even)").addClass("even");
});
CSS:
.items-listed-rc li.even{
background:red;
}
如果您需要使用JavaScript进行此操作,则可以执行
$(".items-listed-rc li:odd").css("background-color", "red")
$(".items-listed-rc li:even").css("background-color", "blue")
否则,css选项会更好,因为不需要添加额外的js代码,因为我们知道选择器的兼容性。
这实际上取决于您如何添加列表项。 正如其他人所提到的,最好的方法可能是使用nth-child()
伪类 ,但iE8及以下版本不支持它。
如果使用JS生成,则可以使用计数器或模数运算符 。
var ul = document.getElementById("items");
for (var i = 1; i < 6; i++){
var li = document.createElement("li");
// Set odd/even class name
li.className = (i%2 == 1 ? "odd" : "even" );
li.appendChild(document.createTextNode("#"+i+" Created with JavaScript"));
ul.appendChild(li);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.