javascript
  • html
  • 2014-01-22 83 views 0 likes 
    0

    所以这里就是我这样做的远:的JavaScript - for循环使用数组

    <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“我' 没有定义”? 它被定义为你可以看到.. 在此先感谢。

    +2

    您使用'var'关键字声明一个变量。 [JavaScript 101](http://hsablonniere.github.io/markleft/prezas/javascript-101.html)。 – undefined

    +3

    注意:你通常应该使用[数组文字符号](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Array_literals)而不是'new Array( )'。在你的情况下,这看起来像'var text = ['t','te','tes','test'];'。 –

    +0

    Matt,那有什么关系?只是好奇。 – prk

    回答

    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> 
    
    +0

    没有给我一个现在出错了,但是它不会将span的文本更改为数组中的内容? (因为我现在没有计时器,它会在一秒钟内结束,但是我不应该在范围内至少看到'文本') – prk

    +1

    @WoopWoopWoopWoop代码在DOM准备好之前正在运行。 –

    +0

    哦,对。我曾经这样做过,只是放置了下面的jScript,谢谢,我的坏。 – prk

    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> 
    
    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> 
    
    0

    由于int在JavaScript是原始类型,它初始化不需要新的关键字和JavaScript代码DOM工作需要一个DOM已经准备好当代码运行,以便使用将脚本代码放在body标签关闭之前的底部或者在加载时调用它。

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

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