我在这里有一个典型的JavaScript代码示例(将背景样式类应用于表中交替的奇数或偶数行的代码)。我试图在CoffeeScript中重写这个,试图学习它。 CoffeeScript范围语法不同,更具Ruby特色。我真的很感激你如何做到这一点的例子?
function alternate(id){
if(document.getElementsByTagName){
var table = document.getElementById(id);
var rows = table.getElementsByTagName("tr");
for(i = 0; i < rows.length; i++){
//manipulate rows
if(i % 2 == 0){
rows[i].className = "even";
}else{
rows[i].className = "odd";
}
}
}
}
更新
我正在使用JQuery并尝试这个但它不起作用(它使所有行#efefef):
$(document).ready ->
rowCount = $('tbody tr')
for row in rowCount
if row.length % 2 == 0
$('tbody tr').css('background-color', '#363636')
else
$('tbody tr').css('background-color', '#efefef')
答案 0 :(得分:5)
更简洁一点:
for row, i in $('tbody tr')
color = if i % 2 is 0 then '#363636' else '#efefef'
$(row).css 'background-color', color
答案 1 :(得分:5)
您可能也对jquery
提供的偶数/奇数元选择器感兴趣$('tbody tr:even').css 'background-color', '#363636'
$('tbody tr:odd').css 'background-color', '#efefef'
答案 2 :(得分:1)
如果你的最终目标是将不同的样式应用于奇数/偶数行,你可以试试这个:
// CSS file
#myTable tr:nth-child(even) { background-color: #363636; }
#myTable tr:nth-child(odd) { background-color: #efefef; }
这里没有JS,只是简单的CSS,这很好,因为样式是一个演示问题。
然而,它仅适用于(相对)现代浏览器:IE 9 +,Firefox 4 +,Chrome ...
答案 3 :(得分:0)
尝试for row, i in rows
,其中i
拥有循环计数器。