我想爲表格中的行設置替代背景顏色 - 但扭曲的是,我不希望每隔一行都被着色,我想對待它們三行塊。用jQuery替換三行和三行的表格
所以對於一個有八行的表格,我希望前三個是白色的,接下來的三個是背景色,最後兩個是白色的。
我該如何使用jQuery來做到這一點?
我想爲表格中的行設置替代背景顏色 - 但扭曲的是,我不希望每隔一行都被着色,我想對待它們三行塊。用jQuery替換三行和三行的表格
所以對於一個有八行的表格,我希望前三個是白色的,接下來的三個是背景色,最後兩個是白色的。
我該如何使用jQuery來做到這一點?
您可以根據結果的指數.filter()
結果集:
$("#table tr").filter(function(idx) {
return (idx % 6) >= 3
}).addClass('alt');
Jquery的每個功能應該這樣做:
http://api.jquery.com/jQuery.each/
$('#mytable > tr').each(function(index, ctr) {
var id = Math.floor(index/3) % 2;
if(id == 0) {
// CHANGE TO COLOR 1
} else {
// CHANGE TO COLOR 2
}
});
訣竅是由3整數除法[所述Math.floor(索引/ 3)],這會給你三個的組您是:
rows 0-2 will integer divide to 0
rows 3-5 will integer divide to 1
rows 6-8 will integer divide to 2
然後你可以國防部它得到所有其他...
簡單:'如果(索引%6> 2){//添加類' – 2010-06-17 19:17:48
,可能具有緩慢選擇的表現,你也可以這樣做:
$(":nth-child(6n), :nth-child(6n-1), :nth-child(6n-2)", $("#test"))
.addClass("alt");
,你可以甚至可以完全使用CSS3(使用nth-child
選擇器)完成此操作,前提是您的目標瀏覽器都支持CSS3(尚未)。
如果您生成了多個代碼中的<tbody>
元素,你可以做到這一點非常有效地這樣的:
HTML
<table id='mytable'>
<tbody>
<tr><td>content</td></tr>
<tr><td>content</td></tr>
<tr><td>content</td></tr>
</tbody>
<tbody>
<tr><td>content</td></tr>
<tr><td>content</td></tr>
<tr><td>content</td></tr>
</tbody>
<tbody>
<tr><td>content</td></tr>
<tr><td>content</td></tr>
<tr><td>content</td></tr>
</tbody>
<tbody>
<tr><td>content</td></tr>
<tr><td>content</td></tr>
</tbody>
</table>
jQuery的
$('#mytable tbody:nth-child(2n)').addClass('someClass');
我不知道jsfiddle。看起來像一個偉大的服務。 – 2010-06-17 18:16:53
+1目前爲止最好的解決方案 – 2010-06-17 19:19:00
謝謝,效果很好! – 2010-06-17 19:28:32