2012-04-06 79 views
25

列數我有類似的一個表來的Javascript:伯爵錶行

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

我想算成一排TD元素的數量。我正在嘗試

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

沒有顯示實際結果。

+0

你必須使用jQuery FGS – 2012-04-06 12:58:41

+0

由fo你可以得到表中的行數: document.getElementById('someid')。getElementsByTagName('tr')。length; – 2012-10-12 04:20:37

+3

@pinouchon當有人要求Javascript的解決方案時,「你必須使用jQuery」不是一個答案。 – Rodrigo 2015-12-29 13:21:36

回答

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

細胞不是表的屬性,行是。細胞是一排雖然

+2

這隻適用於簡單的情況,其中所有單元格的colspan = 1,並且所有行都具有相同的列數。 (HTML允許行具有不同數量的列,在這種情況下,列最少的行會在末尾變爲空白。) – 2013-09-03 15:14:46

+1

不確定你的意思。問題是關於連續的單元格。如果colspan = 2並且缺少兩個仍然意味着只有一個單元格。 雖然在使用rowspan時會有些困惑,但它仍然是正確的,請參閱此小提琴:http://jsfiddle.net/GF6Dr/ 如果您想要一個表中有多少個單元格,然後執行max的所有細胞。 – 2013-09-03 19:23:28

1

首先,當您撥打getElementById時,您需要提供一個ID。 o_O

你的dom中唯一一個id是table元素。如果可以的話,你可以添加ID(確保它們是唯一的)到你的tr元素。

或者,您可以使用getElementsByTagName('tr')獲取文檔中tr元素的列表,然後獲取tds的數量。

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

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

描述你的答案更詳細! – 2015-10-15 07:02:09

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> 

結果:

Row 1 : 1 column 
Row 2 : 4 column