0

我是一个新手,所以我不知道在哪里寻找我的错误。我想计算某个表的所有行,但我需要在表本身上方/内部有数字。但是,我只得到调用函数的点以上的行数,但我需要整个表的行数。

(...)
<script type="text/javascript">
function countRows()
{
   rowsCount = document.getElementById("list").rows.length;
   return rowsCount;
}
</script>

<body>

<table id="list">
<tr><td>
There are 
<script type="text/javascript"> document.write(countRows()) </script> 
rows here. // Returns "1"
</td></tr>

<tr><td>(Stuff goes here)</td></tr>
<tr><td>(Stuff goes here)</td></tr> // script would return "3" here.
<tr><td>(Stuff goes here)</td></tr>
<tr><td>(Stuff goes here)</td></tr>
(...)

这里没有 jQuery!我知道它很好,但在这种情况下我不能使用它。

4

1 回答 1

4

尝试这个:

window.onload = function()
{
    var tbl = document.getElementById("list");
    document.body.innerHTML += tbl.lrows.length;//or tbl.rows[0].cells[0].innerHTML
};

onload事件在页面完全加载后触发,这包括完整的表格。在它们都存在之前,您无法计算行数……这很有意义,不是吗?:P

哦,请,既然你还在学习,不要学错的东西,比如document.write它的缺陷很糟糕。
我知道在这一点上它似乎并不重要,但也请注意,您正在使用rowsCount: 隐含的全局变量创建最邪恶的变量。不要,永远不要那样做。养成声明所有要使用的变量的习惯,以免弄乱全局命名空间。(那,如果你不这样做,你的脚本将在严格模式下失败)。

于 2013-06-17T14:17:39.533 回答