2010-02-26 79 views

Respuesta

14

Digamos que tienes una mesa que tiene este aspecto:

<table> 
    <tr> 
     <td>Information 1</td> 
     <td>Information 2</td> 
    </tr> 
</table> 

se podría hacer algo como esto:

var cells = new Array(); 
$("table td").each(function(){ 
    cells.push($(this).html()); 
}); 

¿Qué es exactamente lo que busca para hacer con los datos?


Lo más fácil de hacer para omitir los encabezados sería simplemente eliminarlos de la matriz una vez que se haya completado el ciclo.

Después de que el código se hace, puede ejecutar algo como esto:

células cells.slice = (1, cells.length);

Esto configurará la matriz en una copia de sí mismo, menos el primer elemento.

Alternativamente, cuando inicialmente bucle a través de él, sólo se almacena la información si el índice es mayor que cero:

var cells = new Array(); 
$("table td").each(function(index){ 
    if(index > 0){ 
     cells.push($(this).html()); 
    } 
}); 

Y por último, si desea ir con una más tradicional Javascript solución que hace no requiere una condición:

var cells = new Array(); 
for(index = 1; index < $("table td").length; index++){ 
    cells.push($("table td").get(index).html()); 
}; 

De esta manera, está comenzando desde la segunda fila.

+2

+1 pero en su ejemplo, '" table tr td "' es innecesario (y más lento). '" table td "' es suficiente. –

+0

gracias por la información. ¿Cómo me las voy a arreglar salteando la primera fila (encabezados)? Estoy enviando la matriz a un servicio web (prob WCF). – Matt

+0

hay más de un método para omitir la primera fila. Incluí un par: ver mi respuesta editada. ¡Espero que esto ayude! –

Cuestiones relacionadas