使用Javascript计算元素

时间:2013-06-17 14:13:59

标签: javascript getelementbyid getelementsbytagname

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

(...)
<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!我知道这很好,但在这种情况下我无法使用它。

1 个答案:

答案 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.writeit's flawed。 我知道它在这一点上看起来并不重要,但也注意到你用rowsCount创造了最邪恶的变量:隐含的全局变量。不要,不要做那件事。习惯于声明要使用的所有变量,以免混淆全局命名空间。 (那,如果你的脚本没有在严格的模式下失败)。