Javascript 使用 for 循环和数组列表

标签 javascript html

我需要制作一个看起来像这样的网页

(生成问题)...这是一个按钮

? x 1 = ( )

? x 2 = ( )

...

? x 9 = ( )

(检查答案)...这也是一个按钮

按下按钮时,首先提示用户选择一个数字(生成问题)。假设他们选择 2。因此上面的列表将执行以下操作。

2 x 1 = ( )

2 x 2 = ( )

...

2 x 9 = ( )

然后用户会像这样浏览并填写空白处:

2 x 1 = ( 2 )

2 x 2 = ( 7 )

...

2 x 9 = ( 18 )

然后他们按下(检查答案按钮),它应该显示以下内容..

2 x 1 = ( 2 ) 正确

2 x 2 = ( 7 ) 不正确

...

2 x 9 = ( 18 ) 正确

这是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.";
            }
        }
}

这是 HTML(这仅适用于前 2 个“数学问题”,只是为了让这个问题保持简单。

<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>

我不知道为什么这不起作用!!

最佳答案

稍微修改了你的代码。通过删除不必要的迭代来简化它。 希望这会有所帮助。

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>

关于Javascript 使用 for 循环和数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52307117/

相关文章:

css - 缩小窗口时导航栏折叠

javascript - 是否可以在 D3 中使用 Knockout Observables

javascript - 以面向对象的方式使用 Meteor 和 javascript

javascript - Canvas arcTo() 方法

jquery - 下拉选择的值在 jquery 中的下拉更改事件中未定义

html - 带有视频的 div 中的负左边框?

javascript - 如何限制用户输入的数量?

javascript - 将组件作为字符串存储在变量中并在 Vue JS 中通过变量渲染它

javascript - 视频当前时间 undefined

javascript - 我想让vuejs中的图像可点击