找到Jquery的数量

时间:2011-01-18 20:55:35

标签: jquery html html-table

我有以下HTML结构,我想找出立即<td>s的长度。这是我正在使用的代码: -

<table class="PrintTable">
    <tr>
      **<td>**
        <table>
            <thead>
                <tr><th>Type Of Transaction</th></tr>
            </thead>
            <tbody>
                <tr>
                    <td>Name</td>
                </tr>
                <tr>
                    <td>Age</td>
                </tr>
            </tbody>
        </table>
      </td>
      **<td>**
        <table>
            <thead>
                <tr><th>2006</th></tr>
            </thead>
            <tbody>
                <tr>
                    <td>Andi</td>
                </tr>
                <tr>
                    <td>25</td>
                </tr>
            </tbody>
        </table>
      </td>

    </tr>
</table>

我用来找出td长度的函数是

function getBody(element)
{
    var divider=2;
    var originalTable=element.clone();
    var tds = $(originalTable).children('tr').children('td').length;
    alert(tds);


}

我看到的结果是0.根本没有任何线索。我期待2.任何帮助将不胜感激。

7 个答案:

答案 0 :(得分:19)

我从HTML中删除了星号并对你如何调用getBody做了一些假设,所以如果我做了一些不对的事,请告诉我。

代码:http://jsfiddle.net/27ygP/

function getBody(element) {
    var divider = 2;
    var originalTable = element.clone();
    var tds = $(originalTable).children('tbody').children('tr').children('td').length;
    alert(tds);
}

getBody($('table.PrintTable'));

最大的变化是添加.children('tbody')。 HTML解释器将tr包装在tbody中。走到那里,你会没事的。

答案 1 :(得分:4)

我想你想使用以下内容。

$("td").length

更新

您将需要使用tr标记作为开始选择器,然后使用第一个来计算每个td选择器以仅占用第一个。

$("tr", $("td:first")).length

答案 2 :(得分:3)

试试这个:

//For FFox
$(document).ready(function(){
var countTD=$("Your_Table_ID_or_Class tr:first > td").length;
});

// For webKit Browser
$(window).load(function(){
var countTD=$("Your_Table_ID_or_Class tr:first > td").length;
});

请注意;如果您创建动态表行列,则使用 $(document).live("click",function(){});

答案 3 :(得分:1)

这应该有效:

var itemsCount = $(".PrintTable > tr > td").length;

<强>更新

我刚刚意识到至少Chrome会插入<tbody>(如果它尚不存在),因此要获得跨浏览器支持:

var itemsCount = $(".PrintTable > tbody > tr > td, .PrintTable > tr > td").length;

示例:http://jsfiddle.net/H2JWS/

答案 4 :(得分:1)

一般来说,如果你想计算特定行中td的数量,你可以这样做..

$(function(){
  count = $("table tr").children("td").index()+1; 
});

答案 5 :(得分:1)

var rowCount = $('#myTable tr')。length;

答案 6 :(得分:0)

var originalTable = $(remove_copy_drargelement).closest('table').clone();

var tds = $(originalTable).children('tbody').children('tr').children('td').length;