$('.row').slice(0, 3).css('background-color: green');
$('.row').slice(4, 6).css('background-color: yellow');
$('.row').slice(6, 10).css('background-color: green');
或者
x = 0;
$('.row').each(function() {
if (x >= 0 && x <= 3) {
$(this).css('background-color: green');
}
if (x >= 4 && x <= 6) {
$(this).css('background-color: yellow');
}
if (x >= 6 && x <= 10) {
$(this).css('background-color: green');
}
x++;
});
一个比另一个快吗?
答案 0 :(得分:4)
使用切片。每个迭代都会进行比较。切片只会占据列。 Plus slice更好地表达了意图 - 这将允许更好的优化(如果有的话)并且代码更具可读性。
答案 1 :(得分:0)
完全使用您的示例并主要考虑性能,纯css解决方案可能更快:
.row:nth-child(-n+10) { background-color: green; }
.row:nth-child(-n+6) { background-color: yellow; }
.row:nth-child(-n+3) { background-color: green; }
订单看起来相反,但它的作用是:首先,前10名中的所有10个项目都将变为绿色,然后前6名为黄色,然后前3名为绿色。
但这仅适用于静态html。如果要动态更改选择,请确实使用jquery.slice。