2013-12-17 41 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