在不使用id或名称的情况下查找s中的s数

时间:2008-11-04 09:49:34

标签: javascript

如何计算特定<td>中的<tr>元素数?

我没有指定要直接访问的ID或名称,我们必须使用document.getElementsByTagName概念。

7 个答案:

答案 0 :(得分:6)

您可以使用以下内容:

var rowIndex = 0; // rowindex, in this case the first row of your table
var table = document.getElementById('mytable'); // table to perform search on
var row = table.getElementsByTagName('tr')[rowIndex];
var cells = row.getElementsByTagName('td');
var cellCount = cells.length;
alert(cellCount); // will return the number of cells in the row

答案 1 :(得分:3)

document.getElementsByTagName返回一个元素数组,因此您应该能够执行以下操作:

var totals = new Array();

var tbl = document.getElementById('yourTableId');
var rows = tbl.getElementsByTagName('tr');
for (var i = 0; i < rows.length; i++) {
    totals.push(rows[i].getElementsByTagName('td').length;
}

...

// total cells in row 1
totals[0];
// in row 2
totals[1];
// etc.

答案 2 :(得分:2)

bobince有正确的答案。我试图给他一些爱,但我是新的0代表。

tr.cells.length是获得所需内容的最快捷方式。

现在,假设你已经有了对tr的引用。如果不这样做,在某些时候你必须引用该表。在DOM中,table元素有一个名为rows的数组(实际上是一个HTMLCollection)。

table.rows[r].cells[c]

将为您提供任何单元格的地址,其中r =行的索引,c =该行中单元格的索引。

答案 3 :(得分:1)

这样的东西
var tot = 0;
var trs = document.getElementsByTagName("tr");
for (i = 0; i < trs.length; i++) {
    tds = trs[i].getElementsByTagName("td");
    tot += tds.length;
}

最后,tot保存tr元素的所有td元素“sons”的总数。

答案 4 :(得分:1)

var trs = document.getElementsByTagName('tr');
for(var i=0;i<trs.length;i++){
  alert("Number of tds in row '+(i+1)+' is ' + tr[i].getElementsByTagName('td').length);
}

将警告每个&lt; tr&gt;中的&lt; td&gt;的数量。在页面上。

答案 5 :(得分:1)

如果你使用jQuery库,它应该就这么简单。

$("table tr:eq(0) > td").length

您可以像CSS3一样使用任何选择器作为选择器

$("#mytableid tr").eq(0).children("td").length 

这将是另一种方式。

答案 6 :(得分:1)

tr.cells.length

拼写它是一种更简单的方法。