javascript
  • html
  • 2014-01-22 73 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]; 
        } 
    
    相關問題