做奇/偶用jQuery造型是很容易的:更有效的方法使用jQuery设置表格行的交替块?
$(function() {
$(".oddeven tbody tr:odd").addClass("odd");
$(".oddeven tbody tr:even").addClass("even");
});
现在我碰到一个interesitng问题今天就来了。如果您想要交替组的元素,该怎么办?例如,交替块3. Longhand这可以这样做:
$(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-ish选择正确的行的方式?
在jQuery中做这类事情时的性能如何,而不是在原始HTML中对每行进行样式设置 - 如果您有一张大桌子,您是否看到它在屏幕上呈现而没有奇怪/甚至是重新渲染(闪烁)到正确的状态? – 2009-02-06 09:19:03