JavaScript - 用于循环的数组

时间:2014-01-22 05:53:34

标签: javascript html

所以这就是我到目前为止所做的:

<script>
text = new Array("t", "te", "tes", "test");
for(new i; i < text.length; i++)
{
    document.getElementById('text').innerHTML=text[i];
}
</script>


<body>
<span id='text'></span>
</body>

我稍后会添加一个计时器,但我的问题是,为什么我得到“ReferenceError'i'未定义”? 它被定义为你可以看到.. 提前谢谢。

4 个答案:

答案 0 :(得分:7)

而不是:

for(new i; i < text.length; i++)

试试这个:

for(var i=0; i < text.length; i++)

您正在使用new,在javascript中我们必须使用var来声明变量。

<强> UPDATE1

正如@MattBall和@oxfn在评论中提到的那样,您的脚本在DOM准备好之前就已经运行了。所以你必须将脚本放在body标签之后。(或者你可以jquery)。

以下是工作代码:

<body>
    <span id='text'></span>
    <script>
    var text = new Array("t", "te", "tes", "test");
    for(var i=0; i < text.length; i++)
    {
        document.getElementById('text').innerHTML = document.getElementById('text').innerHTML +":"+ text[i];
    }
    </script>
</body>

答案 1 :(得分:2)

您也可以使用此方法,

    var text = new Array("t", "te", "tes", "test");
    text.forEach(function(textvalue) {
        console.log(textvalue);
        document.getElementById('text').innerHTML=textvalue;
    });

参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

将数组内容值显示为<div id="text"></div>

<script>
      function ArrayPrint(){
            var text = ["t", "te", "tes", "test"];
            text.forEach(function(textvalue) {
                console.log(textvalue);
                document.getElementById('text').innerHTML  += textvalue +' | ';
            });
      }
      window.onload = ArrayPrint;
</script>

HTML:

  <div id="text"></div>

答案 2 :(得分:0)

<!DOCTYPE html>
<html>
<body>
<span id='text'></span>
</body>
</html>


<script  type="text/javascript">
text = new Array("t", "te", "tes", "test");
for(var i=0; i < text.length; i++)
{
    document.getElementById('text').innerHTML=text[i];
}
</script>

答案 3 :(得分:0)

由于JavaScript中的int是基本类型,并且初始化不需要处理DOM的新关键字和JavaScript代码需要在代码运行时DOM已经可以使用,因此在关闭之前将脚本代码放在底部身体标签或在负载时调用它。

此外,您可以缓存长度属性,从而提高性能。

    for(var i = 0,max=text.length; i < max; i++)
    {
        document.getElementById('text').innerHTML = document.getElementById('text').innerHTML +":"+ text[i];
    }