查找 <td> Jquery 的计数
Posted
技术标签:
【中文标题】查找 <td> Jquery 的计数【英文标题】:Finding the count of <td> Jquery 【发布时间】:2011-06-11 08:43:54 【问题描述】:我有以下 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。任何帮助将不胜感激。
【问题讨论】:
你为什么使用.clone()
? element
是 jQuery 对象吗?我假设是这样,因为clone
不是 DOM 对象上的本机 JS 方法。您能否提供一个如何调用getBody
的示例?
是的,元素是一个 JQuery 对象,它包含完整的表作为对象。即使你不调用 clone(),它仍然显示 0,正如我所期望的 2。
【参考方案1】:
var originalTable = $(remove_copy_drargelement).closest('table').clone();
var tds = $(originalTable).children('tbody').children('tr').children('td').length;
【讨论】:
【参考方案2】:var rowCount = $('#myTable tr').length;
【讨论】:
【参考方案3】:一般来说,如果你想统计特定行中td
的数量,你可以这样做..
$(function()
count = $("table tr").children("td").index()+1;
);
【讨论】:
【参考方案4】:试试这个:
//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());
【讨论】:
【参考方案5】:我认为您想使用以下内容。
$("td").length
更新
您将希望使用 tr 标签作为开始选择器,然后使用 first 计算每个 td 选择器以仅采用第一个。
$("tr", $("td:first")).length
【讨论】:
是的,但不适用于嵌套的,而仅适用于这应该可行:
var itemsCount = $(".PrintTable > tr > td").length;
更新:
我刚刚意识到至少 Chrome 会插入 <tbody>
(如果它尚不存在),以便获得跨浏览器支持:
var itemsCount = $(".PrintTable > tbody > tr > td, .PrintTable > tr > td").length;
示例:http://jsfiddle.net/H2JWS/
【讨论】:
【参考方案7】:我从您的 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
s 包装在tbody
中。向下遍历,你会没事的。
【讨论】:
非常感谢。有用。有没有一个很好的调试器可以让我们找出所有这些技巧。 Firebug for Firefox 是市场上浏览 DOM 的最佳工具。所有主要的浏览器都有内置的工具来做同样的事情(只需点击菜单)。它将带您到一个交互式树,您可以手动遍历它。 谢谢!我想知道为什么你不能在 .children() 中使用多个选择器以上是关于查找 <td> Jquery 的计数的主要内容,如果未能解决你的问题,请参考以下文章