2010-07-06 19 views
5

¿Cómo colorear columnas de tabla pares (o impares) utilizando jQuery? (sin añadir clases de forma manual)jQuery: resalte incluso columnas (no filas)

Mi marcado es:

<table> 
    <caption>Table caption</caption> 
    <thead> 
    <tr><th scope="col">Table header 1</th><th scope="col">Table header 2</th><th scope="col">Table header 3</th><th scope="col">Table header 3</th></tr> 
    </thead> 
    <tbody> 

     <tr><th scope="row">Table row header</th><td>Table data</td><td>Table data</td><td>Table data</td></tr> 
     <tr><th scope="row">Table row header</th><td>Table data</td><td>Table data</td><td>Table data</td></tr> 
     <tr><th scope="row">Table row header</th><td>Table data</td><td>Table data</td><td>Table data</td></tr> 

     <tr><th scope="row">Table row header</th><td>Table data</td><td>Table data</td><td>Table data</td></tr> 
    </tbody> 
</table> 

(que puede o no puede contener attribs alcance o th etiquetas)

Respuesta

6

Puede utilizar el :nth-child() selector para esto:

$('table tr :nth-child(2n)').css('background-color', '#eee'); 

You can see a demo here, esta versión hace las columnas, independientemente de si la celda es <th> o <td> puede agregar eso allí (p. Ej. td:nth-child(2n)) si desea hacer solo una o la otra. Si desea seleccionar otras columnas, simplemente haga 2n+1 en su lugar.

+0

+1: Gracias por su comentario en mi respuesta y la disponibilidad para la solución aquí. – Sarfraz

+0

Gracias, este funciona bien (la versión anterior hizo algún tipo de comprobantes;) – Adrian

+0

Necesita más representante para votar :) – Adrian

1

Editar: Actualizado para corregir mi error de lectura de la pregunta.

Esto debería funcionar:

$('tr > :nth-child(even)').css('background-color','#eee'); 

o

$('tr > :nth-child(odd)').css('background-color','#eee'); 
+0

Ken - OP es colorear columnas, no filas. : o) – user113716

+0

@patrick: Ups, tienes razón. –

+0

Ésta es filas para colorear, necesito * columnas * – Adrian

Cuestiones relacionadas