2012-04-06 13 views
25

Tengo una tabla similar aJavascript: Contar el número de columnas en una fila de la tabla

<table id="table1"> 
<tr> 
    <td><input type="text" value="" /></td> 
    <td><input type="text" value="" /></td> 
    <td><input type="text" value="" /></td> 
    <td><input type="text" value="" /></td> 
</tr> 
<tr> 
    <td><input type="text" value="" /></td> 
    <td><input type="text" value="" /></td> 
    <td><input type="text" value="" /></td> 
    <td><input type="text" value="" /></td> 
</tr> 
<table> 

quiero contar el número de elementos td en una fila. Estoy intentando

document.getElementById('').cells.length; 
document.getElementById('').length; 
document.getElementById('').getElementsByTagName('td').length; 

No se muestra el resultado real.

+0

Usted tiene que usar jQuery FGS –

+0

Por el fo Si lo desea, puede obtener el número de filas en una tabla: document.getElementById ('someid'). getElementsByTagName ('tr'). length; –

+3

@pinouchon Cuando uno pregunta por una solución en Javascript, "tiene que usar jQuery" no es una respuesta. – Rodrigo

Respuesta

41
document.getElementById('table1').rows[0].cells.length 

células no es una propiedad de una tabla, las filas son. Cells es una propiedad de una fila aunque

+2

Esto solo funciona en casos simples, donde colspan = 1 para todas las celdas, y todas las filas tienen el mismo número de columnas. (HTML permite que las filas tengan diferentes números de columnas, en cuyo caso las filas con muy pocas columnas obtienen espacios en blanco al final.) –

+1

No estoy seguro de lo que quiere decir. La pregunta era sobre las celdas en una fila. Si colspan = 2 y dos faltantes todavía significa una sola celda. Aunque se hace un poco confuso cuando se usa rowspan, pero sigue siendo correcto, vea este violín: http://jsfiddle.net/GF6Dr/ Si desea un número de celdas en una tabla, haga el máximo de todas las celdas –

1

En primer lugar, cuando llame al getElementById, debe proporcionar una identificación. o_O

El único elemento en su dom con una identificación es el elemento table. Si puede, puede agregar identificadores (asegúrese de que sean únicos) a sus elementos tr.

O bien, puede usar getElementsByTagName('tr') para obtener una lista de tr elementos en su documento, y luego obtener el número de tds.

here is a fiddle that console logs the results...

-2
$('#table1').find(input).length 
+1

describe tu respuesta más detallada! –

0
<table id="table1"> 
<tr> 
    <td colspan=4><input type="text" value="" /></td> 

</tr> 
<tr> 
    <td><input type="text" value="" /></td> 
    <td><input type="text" value="" /></td> 
    <td><input type="text" value="" /></td> 
    <td><input type="text" value="" /></td> 

</tr> 
<table> 
<script> 
    var row=document.getElementById('table1').rows.length; 
    for(i=0;i<row;i++){ 
    console.log('Row '+parseFloat(i+1)+' : '+document.getElementById('table1').rows[i].cells.length +' column'); 
    } 
</script> 

Resultado:

Row 1 : 1 column 
Row 2 : 4 column 
Cuestiones relacionadas