【发布时间】:2011-10-08 05:53:54
【问题描述】:
考虑以下示例,它应该每隔一行着色一次:(live demo here)
JS:
$(function() {
var wrapper = $("<div></div>")
for (i = 0; i < 100; i++) {
wrapper.append("<span></span>");
}
$("body").append(wrapper);
color_rows();
});
function color_rows() {
$("span").each(function(i) {
if (i % 10 >= 5) {
$(this).css("background-color", "red");
}
});
}
CSS:
div {
width: 450px;
height: 400px;
background-color: #ccc;
overflow: auto;
}
span {
display: inline-block;
width: 50px;
height: 50px;
background-color: #777;
margin: 0 30px 30px 0;
}
输出是:
如您所见,color_rows() 函数假定每行有 5 个元素。例如,如果我将div 的宽度更改为350px,color_rows() 函数将无法正常工作(即不会每隔一行着色)。
如何修复 color_rows() 使其适用于 div 的每个宽度?
【问题讨论】:
-
不应该 tr:nth-child(odd) 在这里工作吗?编辑:啊!我以为有一张桌子!
-
不管是不是桌子。 CSS3 nth-child 适用于任何元素,但 Internet Explorer 不支持。
标签: javascript jquery html css