我是一个新手,所以我不知道在哪里找我的错误。 我想要计算某个表的所有行,但我需要在表本身上方/内部使用数字。但是,我只得到我调用函数的点数以上的行数,但我需要整个表的行数。
(...)
<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!我知道这很好,但在这种情况下我无法使用它。
答案 0 :(得分: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
:it's flawed。
我知道它在这一点上看起来并不重要,但也注意到你用rowsCount
创造了最邪恶的变量:隐含的全局变量。不要,不要做那件事。习惯于声明要使用的所有变量,以免混淆全局命名空间。 (那,如果你的脚本没有在严格的模式下失败)。