jQuery指望表长度返回不正确的值

时间:2013-08-28 15:54:40

标签: jquery html-table

我正在尝试计算表格中的行数。当我通过控制台测试时,这是我得到的:

$("#rule_summary").html();
"
        <thead>
            <tr>
                <th><b>Actions</b></th><th><b>Contact Type</b></th><th><b>Contact Number</b></th><th><b>Call Order</b></th><th><b>Text</b></th>
            </tr>
        </thead>
    <tbody>

        <tr>
        <td> 
         <a href="" class="delete">Delete</a>        
        </td>
        <td> Home Number</td>
        <td> 4442</td>
        <td> 1</td>     
        <td> no </td>           
    </tr>
        <tr>
        <td> 
         <a href="" class="delete">Delete</a>        
        </td>
        <td> M Number</td>
        <td> 28507</td>
        <td> 2</td>     
        <td> yes </td>          
    </tr>
        </tbody>

"

这就是计数(控制台调试)

$("#rule_summary").length
1

我一直在检查代码,以确保我的表格格式正确...我看不出它有什么问题..但也许另一双眼睛会找到一些东西。 有什么建议?

3 个答案:

答案 0 :(得分:1)

尝试这样做

$("#rule_summary tr").length

请记住,这将包括您的表标题行。 在这里工作小提琴: http://jsfiddle.net/fBsLv/

答案 1 :(得分:1)

没有错。您收到1,因为只有一个元素的标识为#rule_summary

如果您想计算一个或多个行(tr),您应该:

  • 选择所有行
  • 计算所选元素的数量

你可以这样做:

$('#rule_summary').find('tr').length

答案 2 :(得分:0)

你应该使用

$("#rule_summary tr").length

如果要计算所有行,包括标题行

如果您只想要数据行(无标题)

,请执行此操作
$("#rule_summary tbody tr").length

http://jsfiddle.net/UHF6Y/