2013-12-17 38 views
-3
<!doctype html> 
<html lang="en"> 
    <head> 
     <title>Test</title> 
     <meta charset="utf-8"> 
     <script> 
      function onetwothree() { 
       var girl = ["Ariana Grande", "Melanie Iglesias", "Kate Upton", "Vanessa Hudgens", "Miley Cyrus", "Jennifer Aniston", "Hannah Montana"]; 
       for (i = 0; i < girl.length; i++) { 
        var girlOfDay = girl[i]; 
        var id = "w" + i; 
        var li = getElementById(id); 
        li.innerHTML = girlOfDay; 
       } 
      } 
      window.onload = onetwothree; 
     </script> 
    </head> 

    <body> 
     <ul> 
      <li id="w0"></li> 
      <li id="w1"></li> 
      <li id="w2"></li> 
      <li id="w3"></li> 
      <li id="w4"></li> 
      <li id="w5"></li> 
      <li id="w6"></li> 
     </ul> 
    </body> 
</html> 

爲什麼不工作它只顯示子彈點而不是名稱?進出口新的這個我不喜歡這樣的例子在AA的書,它的工作那我就拿出我自己和它不工作JavaScript數組/循環不工作

+0

你確定有這個問題吧? – adeneo

+0

var li = document.getElementById(id); – brouxhaha

+0

在for循環中聲明變量不是一個好習慣。我會建議在之前宣佈他們,'var girlOfDay,id,li;'然後'爲...' – NaNpx

回答

3

這條線:

var li=getElementById(id); 

應該這樣說:

var li=document.getElementById(id); 

在解決這類問題時,請始終使用所有現代瀏覽器的開發工具中提供的JavaScript控制檯。例如,你的原代碼,Chrome瀏覽器報告以下錯誤:

Uncaught ReferenceError: getElementById is not defined [test.html:13] 
+0

這是第二次我忘記了「文件」謝謝 – Justin

0

你有2個問題:

  1. getElementById不是調用正確的方法,document.getElementById是正確的
  2. 您間沒有」牛逼實際調用你的函數window.onload=onetwothree;不起作用,window.onload=onetwothree();確實工作

工作小提琴:http://jsfiddle.net/den23/

+0

從我所知道的功能我認爲這是怎麼做的,我知道這是如何通常完成的。但是在書中它沒有「()」,當他們用window.onload調用它時,我認爲這很奇怪,並決定在最後使用和不使用「()」來測試它,它只在沒有「()」,我不知道這是爲什麼,如果它可以幫助我使用鉻 – Justin

+0

賈斯廷是正確的。他正在設置'window.onload'變量來指向他的函數(而不是調用它)。它將在窗口的'load'事件中被調用。 – Nate

+0

jsfiddle它不會工作沒有() – DrCord