Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript数组/循环不工作 试验 函数onetwother(){ var girl=[“Ariana Grande”、“Melanie Iglesias”、“Kate Upton”、“Vanessa Hudgens”、“Miley Cyrus”、“Jennifer Aniston”、“Hannah Montana”]; 对于(i=0;i_Javascript_Html_Arrays_Loops - Fatal编程技术网

javascript数组/循环不工作 试验 函数onetwother(){ var girl=[“Ariana Grande”、“Melanie Iglesias”、“Kate Upton”、“Vanessa Hudgens”、“Miley Cyrus”、“Jennifer Aniston”、“Hannah Montana”]; 对于(i=0;i

javascript数组/循环不工作 试验 函数onetwother(){ var girl=[“Ariana Grande”、“Melanie Iglesias”、“Kate Upton”、“Vanessa Hudgens”、“Miley Cyrus”、“Jennifer Aniston”、“Hannah Montana”]; 对于(i=0;i,javascript,html,arrays,loops,Javascript,Html,Arrays,Loops,为什么它不工作?它只显示项目符号而不显示名称?我是新来的我在一本书中做了一个这样的例子,它起了作用,然后我试着提出我自己的,但它不起作用 <!doctype html> <html lang="en"> <head> <title>Test</title> <meta charset="utf-8"> <script> functio

为什么它不工作?它只显示项目符号而不显示名称?我是新来的我在一本书中做了一个这样的例子,它起了作用,然后我试着提出我自己的,但它不起作用

<!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>
应该这样说:

var li=getElementById(id);
在解决此类问题时,请始终使用所有现代浏览器的开发工具中提供的JavaScript控制台。例如,对于原始代码,Chrome会报告以下错误:

var li=document.getElementById(id);
您有两个问题:

  • getElementById
    不是调用文档的正确方法。getElementById是正确的
  • 实际上,您并没有调用函数
    window.onload=onetwotree不起作用,
    window.onload=onetwother()确实有效

  • 工作提琴:

    你肯定答对了吗?var li=document.getElementById(id);在for循环中声明变量不是好的做法。我建议在,
    var girlOfDay,id,li然后是…<代码>等等,为什么我在哪里声明它们很重要?这与全局变量和局部变量有关吗?因为我有点理解那些是什么,但我在读的书中没有提到这一点,这是我第二次忘记“文档”了。谢谢你,从我对函数的了解来看,我认为这就是它的工作方式,我知道它通常是这样做的。但是在书中没有“()”,当他们用window.onload调用它时,我觉得这很奇怪,最后决定用“()”和不用“()”来测试它,它只有在没有“()”的时候才起作用,我不知道这是为什么,如果它有帮助,我使用chromeJustin是正确的。他正在设置
    窗口.onload
    变量以指向他的函数(而不是调用它)。它将在窗口的
    加载
    事件期间调用。JSFIDLE不允许您直接访问
    window.onload
    。相反,您可以从下拉列表中选择
    onLoad
    (您这样做了),JSFIDLE将直接调用您的代码。在浏览器中,您不希望自己调用函数,因为它会在文档完全加载之前运行。相反,您将函数分配给
    window.onload
    ,浏览器会在适当的时间调用该函数。
    Uncaught ReferenceError: getElementById is not defined [test.html:13]