Domanda

Ho un esempio qui di un pezzo tipico di JavaScript (codice che si applicherebbe una classe sfondo stile a un alternata pari o dispari riga in una tabella). Sto cercando di riscrivere questo CoffeeScript nel mio tentativo di apprendere che. La sintassi gamma CoffeeScript è diverso e più Ruby-esque. Mi piacerebbe davvero apprezzare un esempio di come si dovrebbe fare questo?

   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"; 
         }       
       } 
     } 
    }

Aggiorna

sto usando jQuery e provare questo, ma non funziona (si fa tutte le righe #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')
È stato utile?

Soluzione

Un po 'più conciso:

for row, i in $('tbody tr')
  color = if i % 2 is 0 then '#363636' else '#efefef'
  $(row).css 'background-color', color

Altri suggerimenti

Si può anche essere interessati a meta selettori pari / dispari forniti da jquery

$('tbody tr:even').css 'background-color', '#363636'
$('tbody tr:odd').css 'background-color', '#efefef'

Se il vostro obiettivo finale è solo quello di applicare uno stile diverso alla pari / righe pari, si può provare in questo modo:

// CSS file

#myTable tr:nth-child(even) { background-color: #363636; }
#myTable tr:nth-child(odd)  { background-color: #efefef; }

No JS qui, semplicemente CSS, che è un bene dal momento che lo stile è una presentazione preoccupazione.

Tuttavia funziona solo in browser (relativamente) moderno: IE 9, Firefox 4+, Chrome ...

Prova for row, i in rows, dove i detiene il contatore del ciclo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top