Javascript document.getElementById.innerHTML=单选按钮?

Javascript document.getElementById.innerHTML=单选按钮?,javascript,Javascript,我正在用JavaScript做一个测验,从20个问题中随机选择10个问题。我的密码是: if (question==1){ document.getElementById(q).innerHTML="Question 1" } 我的问题是,我的期末测验不会回答问题1。我想让它写一个单选按钮。如何用单选按钮替换问题1 此外,我不希望我的代码多次拉同一个问题。所以他们不会回答第四个问题两次。这是我的全部代码: <body> <input type="button"

我正在用JavaScript做一个测验,从20个问题中随机选择10个问题。我的密码是:

if (question==1){
    document.getElementById(q).innerHTML="Question 1"
}
我的问题是,我的期末测验不会回答问题1。我想让它写一个单选按钮。如何用单选按钮替换问题1

此外,我不希望我的代码多次拉同一个问题。所以他们不会回答第四个问题两次。这是我的全部代码:

<body>
    <input type="button" value="Start!" onclick="choosequestions()"/><br><br>
    <div id="1"></div><br>
    <div id="2"></div><br>
    <div id="3"></div><br>
    <div id="4"></div><br>
    <div id="5"></div><br>
    <div id="6"></div><br>
    <div id="7"></div><br>
    <div id="8"></div><br>
    <div id="9"></div><br>
    <div id="10"></div><br>
<body>
<script>
    function choosequestions(){
        for(q=1;q < 11;q++){
            var question=Math.floor((Math.random()*20)+1)
            if (question==1){
                document.getElementById(q).innerHTML="Question 1"    
            }else if (question==2){
                document.getElementById(q).innerHTML="Question 2"
            }else if (question==3){
                document.getElementById(q).innerHTML="Question 3"
            }else if (question==4){
                document.getElementById(q).innerHTML="Question 4"
            }else if (question==5){
                document.getElementById(q).innerHTML="Question 5"
            }else if (question==6){
                document.getElementById(q).innerHTML="Question 6"
            }else if (question==7){
                document.getElementById(q).innerHTML="Question 7"
            }else if (question==8){
                document.getElementById(q).innerHTML="Question 8"
            }else if (question==9){
                document.getElementById(q).innerHTML="Question 9"
            }else if (question==10){
                document.getElementById(q).innerHTML="Question 10"
            }else if (question==11){
                document.getElementById(q).innerHTML="Question 11"
            }else if (question==12){
                document.getElementById(q).innerHTML="Question 12"
            }else if (question==13){
                document.getElementById(q).innerHTML="Question 13"
            }else if (question==14){
                document.getElementById(q).innerHTML="Question 14"
            }else if (question==15){
                document.getElementById(q).innerHTML="Question 15"
            }else if (question==16){
                document.getElementById(q).innerHTML="Question 16"
            }else if (question==17){
                document.getElementById(q).innerHTML="Question 17"
            }else if (question==18){
                document.getElementById(q).innerHTML="Question 18"
            }else if (question==19){
                document.getElementById(q).innerHTML="Question 19"
            }else if (question==20){
                document.getElementById(q).innerHTML="Question 20"
            }
        }
    }
</script>

首先,您可以将功能简化为:

function choosequestions(){
    for(q=1; q < 11; q++){
        var question=Math.floor((Math.random()*20)+1);
        document.getElementById(q).innerHTML = 'Question ' + question;
    }
}
其次,要确保同一个问题不会被多次选中,请执行以下操作:

function choosequestions(){
    var qList = [];
    for(q=1; q < 11; q++){
        var question = Math.floor((Math.random()*20)+1);

        // Check to make sure Question # 'question' has not been added already:
        while (qList.indexOf(question) !== -1) {
            question = Math.floor((Math.random()*20)+1);
        }
        qList.push(question);
        document.getElementById(q).innerHTML = 'Question ' + question;
    }
}
如果你不理解这个函数,请告诉我,我可以解释

最后,要使文本进入单选按钮,并使用上述功能,请更改为:

function choosequestions(){
    var qList = [];
    for(q=1; q < 11; q++){
        var question = Math.floor((Math.random()*20)+1);
        while (qList.indexOf(question) !== -1) {
            question = Math.floor((Math.random()*20)+1);
        }
        qList.push(question);

        // Create radio button within each div element:
        document.getElementById(q).innerHTML = '<input type="radio" name="question" value="' + q + '">Question ' + question;
    }
}
希望这是有帮助的

编辑:根据你的评论,我相信这就是你想要的:

function choosequestions(){
    var qList = [];
    for(q=1; q < 11; q++){
        var question = Math.floor((Math.random()*20)+1);
        var message = '';
        while (qList.indexOf(question) !== -1) {
            question = Math.floor((Math.random()*20)+1);
        }
        qList.push(question);

        // Create radio button within each div element:
        if (question==1){
            message = "Question 1";
        }else if (question==2){
            message = "Question 2";
        }
        ...
        // Lots of other 'else if' statements
        ...
        }else if (question==20){
            message = "Question 20";
        }
        document.getElementById(q).innerHTML = message;
    }
}

这样,您仍然可以更改每个特定问题部分的html。

请做一个JSFiddle并让我知道……这就是@FranciscoCorrales所说的:暴君暴龙,我希望您能给出任何解释。我只有14岁,最近开始自学JavaScript,所以我还不知道很多。Groovy,具体是哪一部分?顺便说一句,这是学习JS的好资源。我不理解你的第二段代码。谢谢你的链接,我相信我会学到很多!我不认为我可以压缩这个函数,因为我的最终代码是这样的:否则如果问题==18{document.getElementByIdq.innerHTML='Country Blues Rock Pop'},那么我还需要使用JS检查答案。