计算HTML表中的行数,但不计算为行

时间:2013-12-10 17:44:23

标签: javascript dom html-table rows

我需要你的帮助,

如果以下代码计算表中的每个表行,如何修改它以使代码不会将<th></th>计为行本身?

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

4 个答案:

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

答案 1 :(得分: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);

答案 2 :(得分: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/

答案 3 :(得分:0)

热爱jQuery,如果你不想用纯JS做到这一点:

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