简体   繁体   English

Javascript使用带有数组列表的for循环

[英]Javascript using for loops with array lists

I need to make a webpage that looks something like this 我需要制作一个看起来像这样的网页

(generate question)...this is a button (产生问题)...这是一个按钮

? x 1 = ( ) x 1 =()

? x 2 = ( ) x 2 =()

... ...

? x 9 = ( ) x 9 =()

(check answer)...this is also a button (检查答案)...这也是一个按钮

The user is first prompt to choose a number when pressing the button (generate question).. hypothetically they choose 2. So the above list will do the following. 当按下按钮时(生成问题),首先提示用户选择一个数字。假设他们选择了2。因此上面的列表将执行以下操作。

2 x 1 = ( ) 2 x 1 =()

2 x 2 = ( ) 2 x 2 =()

... ...

2 x 9 = ( ) 2 x 9 =()

The user then goes through and fills in the empty spots like so: 然后,用户仔细检查并填充空白处,如下所示:

2 x 1 = ( 2 ) 2 x 1 =(2)

2 x 2 = ( 7 ) 2 x 2 =(7)

... ...

2 x 9 = ( 18 ) 2 x 9 =(18)

They then press the (check answer button) and it should display the following.. 然后,他们按下(检查答案按钮),它应该显示以下内容。

2 x 1 = ( 2 ) correct 2 x 1 =(2)正确

2 x 2 = ( 7 ) incorrect 2 x 2 =(7)错误

... ...

2 x 9 = ( 18 ) correct 2 x 9 =(18)正确

This is the java script 这是java脚本

var number;

function chickenWing()
{
    number = prompt("Enter number for multiplication");

    var changeNumber = document.getElementsByClassName("chooseNumber");

       for(var i = 0; i < changeNumber.length; i++)
       {
            changeNumber[i].innerHTML = number;
       }

}

function chickenDrumStick()
{
    var array = document.getElementsByClassName("apple")

    for(var i = 0; i < array.length; i++)
    {
        var cheese = 0;
        cheese = cheese + 1;
    }
    var correctAnswer = cheese + number;



    var array1 = document.getElementsByClassName("inPut");
        for(var i = 0; i < array1.length; i++)
        {
            var userAnswer = Number(array1.value);
        }

    var array2 = document.getElementsByClassName("result")
        for(var i = 0; i < array2.length; i++)
        {
            if(userAnswer == correctAnswer)
            {
                array2[i].innerHTML = "Correct!";
            }

            else
            {
                array2[i].innerHTML = "Incorrect, please try again.";
            }
        }
}

And this is the HTML (this is only for the first 2 "math questions" just to keep things simple for the sake of this question. 这就是HTML(这仅用于前两个“数学问题”,只是为了使问题简单起见。

<button onClick="chickenWing()">Generate question</button>
    <br/>
    <br/>
        <span class = "chooseNumber">?</span>
        <span class = "apple"> x 1 = </span>
            <input type = "text" size = "6px" class = "inPut "/>
        <span class = "result"></span>
    <br/>
    <br/>
        <span class = "chooseNumber">?</span>
        <span class = "apple"> x 2 = </span>
            <input type = "text" size = "6px" class = "inPut"/>
        <span class = "result"></span>
    <br/>
    <br/>
<button onClick="chickenDrumStick()">Check answer</button>

Im not sure why this is not working!! 我不确定为什么这不起作用!

Modified your code a bit. 修改了一下代码。 Simplified it by removing unnecessary iterations. 通过删除不必要的迭代来简化它。 Hope this helps. 希望这可以帮助。

 var number; function chickenWing() { number = prompt("Enter number for multiplication"); var changeNumber = document.getElementsByClassName("chooseNumber"); for(var i = 0; i < changeNumber.length; i++) { changeNumber[i].innerHTML = number; } } function chickenDrumStick() { var array = document.getElementsByClassName("apple") var array1 = document.getElementsByClassName("inPut"); var array2 = document.getElementsByClassName("result") for(var i = 0; i < array.length; i++) { if(Number(array1[i].value) == ((i+1) * number)) { array2[i].innerHTML = "Correct!"; array2[i].classList.add('correct'); array2[i].classList.remove('incorrect'); } else { array2[i].innerHTML = "Incorrect, please try again."; array2[i].classList.add('incorrect'); array2[i].classList.remove('correct'); } } } 
 .correct { color:green; } .incorrect { color:red; } 
 <button onClick="chickenWing()">Generate question</button> <br/> <br/> <span class = "chooseNumber">?</span> <span class = "apple"> x 1 = </span> <input type = "text" size = "6px" class = "inPut "/> <span class = "result"></span> <br/> <br/> <span class = "chooseNumber">?</span> <span class = "apple"> x 2 = </span> <input type = "text" size = "6px" class = "inPut"/> <span class = "result"></span> <br/> <br/> <button onClick="chickenDrumStick()">Check answer</button> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM