用 jQuery 做奇数/偶数样式非常简单:
$(function() {
$(".oddeven tbody tr:odd").addClass("odd");
$(".oddeven tbody tr:even").addClass("even");
});
现在我今天遇到了一个有趣的问题。如果你想为交替的元素组设置样式怎么办?例如,交替的 3 块。可以通过以下方式完成常规操作:
$(function() {
$(".oddeven3 tbody tr:nth-child(3n+1)").addClass("odd");
$(".oddeven3 tbody tr:nth-child(3n+2)").addClass("odd");
$(".oddeven3 tbody tr:nth-child(3n+3)").addClass("odd");
$(".oddeven3 tbody tr:nth-child(3n+4)").addClass("even");
$(".oddeven3 tbody tr:nth-child(3n+5)").addClass("even");
$(".oddeven3 tbody tr:nth-child(3n+6)").addClass("even");
});
不过好像有点啰嗦。现在它可以稍微简化并像这样通用:
function oddEvenGroupStyle(groupSize) {
for (var i=1; i<=groupSize; i++) {
$(".oddeven" + groupSize + " tbody tr:nth-child(" + groupSize + "n+" + i + ")").addClass("odd");
$(".oddeven" + groupSize + " tbody tr:nth-child(" + groupSize + "n+" + (groupSize+i) " + ")").addClass("even");
}
}
和:
$(function() {
oddEvenGroupStyle(3);
});
不过,对我来说似乎有点骇人听闻。是否有更多 jQuery 风格的方式来选择正确的行?