2013-12-10 13 views
2

我需要你的幫助,計數在一個HTML表格的行數,除了不計<th></th>作爲行

若跌破將下面的代碼計算表中的每一表行,怎麼能修改這樣代碼不會將<th></th>作爲一行自己計算在內?

var rows = document.getElementById("data").rows.length; 
+2

你的表是否使用'thead/tbody'? –

+1

發佈您的HTML,所以我們可以幫助,請。 – srquinn

+0

沒有或只是使用

​​

回答

3

您應該使用THEAD和TBODY

HTML:

<table id="data"> 
    <thead> 
     <tr><th>Hz</th></tr> 
    </thead> 
    <tbody> 
     <tr><td>1</td></tr> 
     <tr><td>2</td></tr> 
     <tr><td>3</td></tr> 
    </tbody> 
</table> 

的JavaScript:

var rows = document.getElementById("data").getElementsByTagName("tbody")[0].rows.length; 

JSFiddle

+0

他沒有TBODY –

+0

嗯,也許在OP應該花費30秒,增加一個。 :) – epascarello

+0

我將添加一個,它似乎是最簡單的選項。我會在5分鐘內接受這個答案。非常感謝。 –

0

無需修改HTML標記你要算正確的行自己:

var rows = document.getElementById("data").rows 
var count = 0; 
for (var i=0; i< rows.length; i++) { 
    if (rows[i].cells[0].tagName != 'TH') count++ 
} 
console.log(count) 

演示:http://jsfiddle.net/cHW6z/

+0

它將爲此標記失敗:

​​

0

使用jQuery的愛,如果你不想用純JS做到這一點:

$('#tableId tr').filter(function() { 
    return $(this).find('th').size() == 0; 
}).size(); 
3

乘坐看看這個JSFiddle,我試過的代碼是:

var rows = document.getElementById('data').getElementsByTagName('tr'); 
var count = 0; 
for(var i = 0; i < rows.length; i++) 
{  
    if (rows[i].getElementsByTagName('th').length == 0) 
     count++; 
} 
alert(count); 
+0

這應該是公認的答案。 –

相關問題