Ich versuche, die richtigen Antworten in einem Quiz zu zählen, so dass, wenn der Spieler auf die richtige Antwort klickt, wird der Zähler eins hinzufügen, und am Ende des Quiz, wird der HTML sagen: Sie haben "+ korrekte +" Antworten richtig ".Anzahl korrekte Antworten mit Button onclick
Gewünschtes Ergebnis: Zeigt die Anzahl der Antworten an, die der Spieler richtig beantwortet hat.
Wie Sie sehen können habe ich schon einige Dinge ausprobiert, aber die funktionieren nicht.
var index = 0;
function nextButton() {
document.getElementById("questionHere").innerHTML = iconquiz[index].iq;
document.getElementById("answer1").innerHTML = iconquiz[index].ia1;
document.getElementById("answer2").innerHTML = iconquiz[index].ia2;
document.getElementById("answer3").innerHTML = iconquiz[index].ia3;
if (index < iconquiz.length) {
index++
}
}
function prevButton() {
document.getElementById("questionHere").innerHTML = iconquiz[index].iq;
document.getElementById("answer1").innerHTML = iconquiz[index].ia1;
document.getElementById("answer2").innerHTML = iconquiz[index].ia2;
document.getElementById("answer3").innerHTML = iconquiz[index].ia3;
if (index != 0) {
index--
}
}
var counter = 0;
function buttonClicked(number) {
if (iconquiz[index].correct === number) {
counter++
}
}
var iconquiz = [{
iq: "Please Begin",
ia1: "This is a quiz over different icons used in the coding community!",
ia2: "",
ia3: ""
},
{
iq: "which icon is used for GitHub?",
ia1: "<i class='fa fa-gitlab fa-lg' aria-hidden='true'></i>" + "<input class='answers' type='radio' name='answer' value='incorrect'>",
ia2: "<i class='fa fa-grav fa-lg' aria-hidden='true'></i>" + "<input class='answers' type='radio' name='answer' value='incorrect'>",
ia3: "<i class='fa fa-github-alt fa-lg' aria-hidden='true'></i>" + "<input class='answers' type='radio' name='answer' value='correct'>"
correct: 3
},
{
iq: "What is this? " + "<i class='fa fa-gitlab' aria-hidden='true'></i>",
ia1: "GitHub" + "<input class='answers' type='radio' name='answer' value='incorrect'>",
ia2: "Atom.io" + "<input class='answers' type='radio' name='answer' value='incorrect'>",
ia3: "GitLab" + "<input class='answers' type='radio' name='answer' value='correct'>"
},
{
iq: "question number three",
ia1: "1 ",
ia2: "2 ",
ia3: "3 "
},
{
iq: "no more!",
ia1: "you got " + correct + " answers correct!",
ia2: "",
ia3: ""
},
];
/*************
MAIN STUFFF
*************/
body {
background: #CCC;
font-family: 'Varela Round', sans-serif;
}
.collapse {
color: #fff;
background: #494949;
border-radius: 10px;
width: 300px;
margin: 20px auto;
padding: 10px 0;
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3);
}
#correct:active {
color: #4ada95;
}
#correct:focus {
color: #4ada95;
}
/*************
QUIZ BOXES
*************/
h2 {
text-align: center;
}
input {
display: none;
visibility: hidden;
}
.answers {
display: inline;
visibility: visible;
}
label {
width: 90px;
margin: 0 auto;
margin-bottom: 10px;
display: block;
text-align: center;
color: #fff;
background-color: #4ada95;
border-radius: 5px;
}
label:hover {
color: #494949;
cursor: pointer;
}
label::before {}
/************
QUIZ CONTENT
************/
h3 {
background-color: #707070;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
margin: 0;
padding: 10px;
}
li {
list-style-type: none;
padding: 10px;
margin: 0 auto;
text-align: center;
}
button {
color: #fff;
background-color: #707070;
border-radius: 5px;
border-style: solid;
border-color: #707070;
margin: 5px;
}
.buttons {
position: absolute;
bottom: 0;
text-align: center;
margin-left: 73px;
}
/***********
QUIZES
***********/
#expand {
height: 225px;
overflow: hidden;
transition: height 0.5s;
background-color: #4ada95;
color: #FFF;
width: 250px;
margin: 0 auto;
text-align: center;
border-radius: 10px;
position: relative;
}
/**********
FIRST QUIZ
**********/
#toggle:checked~#expand {
height: 0px;
}
#toggle:checked~label::before {
display: hidden;
}
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Varela+Round" rel="stylesheet">
<link href="quiz.css" rel="stylesheet">
<script src="quiz.js"></script>
</head>
<body>
<main>
<div class="collapse">
<h2>Icon Quiz</h2>
<input id="toggle" type="checkbox" checked>
<label for="toggle">take quiz</label>
<div id="expand">
<section>
<h3 id="questionHere">Please Begin</h3>
<section>
<li id="answer1" onclick="buttonClicked(1)">This is a quiz over different icons used in the coding community!</li>
<li id="answer2" onclick="buttonClicked(2)"></li>
<li id="answer3" onclick="buttonClicked(3)"></li>
</section>
</section>
<div class="buttons">
<button onclick="prevButton()" type="button">prev</button><button onclick="nextButton()" type="button">next</button>
</div>
</div>
</div>
</main>
</body>
</html>
die Idee selbst ist nicht gut: Ein Klick Fall, dass Sie nicht über die richtige Anzahl der angeklickten richtigen Antworten sagen könnte, da ein Benutzer eine x-mal richtige Antwort anklicken können, müssen Sie Radio verwenden Eingaben. –
@Amani okay, also habe ich jetzt Radios, aber wie kann ich sie zählen? – hannacreed
können Sie Ihren Code dann aktualisieren? –