2012-04-06 15 views
25

Ho una tabella simile aJavascript: Contare il numero di colonne in una riga della tabella

<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> 

voglio contare il numero di elemento td di fila. Sto cercando

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

Non ha mostrato il risultato effettivo.

+0

Devi usare jQuery FGS –

+0

Dalla fo che puoi ottenere il numero di righe in una tabella: document.getElementById ('someid'). getElementsByTagName ('tr'). length; –

+3

@pinouchon Quando si richiede una soluzione in Javascript, "si deve usare jQuery" non è una risposta. – Rodrigo

risposta

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

cellule non è una struttura di una tabella, le righe sono. Cells è una proprietà di una riga se

+2

Funziona solo in casi semplici, dove colspan = 1 per tutte le celle e tutte le righe hanno lo stesso numero di colonne. (HTML consente alle righe di avere diversi numeri di colonne, nel qual caso le righe con troppe poche colonne ottengono spazi vuoti alla fine.) –

+1

Non sai cosa intendi. La domanda riguardava le celle di fila. Se colspan = 2 e due mancanti significa ancora solo una cella. Diventa un po 'confuso quando si utilizza rowspan, ma è ancora corretto, vedere questo violino: http://jsfiddle.net/GF6Dr/ Se si desidera un numero di quante celle in una tabella quindi fare il massimo di tutte le cellule. –

1

Prima di tutto, quando si chiama getElementById, è necessario fornire un ID. o_O

L'unico elemento in dom con un ID è l'elemento table. Se puoi, puoi aggiungere id (assicurati che siano unici) agli elementi tr.

In alternativa, è possibile utilizzare getElementsByTagName('tr') per ottenere un elenco di elementi tr nel documento, quindi ottenere il numero di tds.

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

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

descrivi la tua risposta più dettagliata! –

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> 

Risultato:

Row 1 : 1 column 
Row 2 : 4 column 
Problemi correlati