首页 > 解决方案 > 只记录到第一个数组

问题描述

所以我正在做一个测验 HTML 事情是

我为每个错误的元素设置了它以将互文更改为错误

但它只改变了第一个元素,我应该将它设置为 foreach,这是为什么呢?

const op1 = document.getElementById("op1")
const op2 = document.getElementById("op2")
const op3 = document.getElementById("op3")
const op4 = document.getElementById("op4")

    let origArray = [op1,op2,op3,op4];
                                    
var math = origArray[Math.floor(Math.random()* origArray.length)]
math.innerText = "Right"

function wrong(){
    var cloneArray = origArray.slice();
var i = math;

const something = cloneArray.splice(i,1);

something.forEach(elem => {
    elem.innerText = "Wrong"
    console.log(elem.id)
});
}

wrong()

标签: javascripthtml

解决方案


你应该做

const op1 = document.getElementById("op1")
const op2 = document.getElementById("op2")
const op3 = document.getElementById("op3")
const op4 = document.getElementById("op4")

    let origArray = [op1,op2,op3,op4];
var rightIndex = Math.floor(Math.random()* origArray.length);                                    
var math = origArray[rightIndex];
math.innerText = "Right"

function wrong(){
    var cloneArray = origArray.slice();
var i = rightIndex;

cloneArray.splice(i,1);

cloneArray.forEach(elem => {
    elem.innerText = "Wrong"
    console.log(elem.id)
});
}

wrong()

推荐阅读