Foren
Neue Beiträge
Foren durchsuchen
Was ist neu?
Neue Beiträge
Profilnachrichten
Online
Anmelden
Registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Neue Beiträge
Foren durchsuchen
Menü
Anmelden
Registrieren
App installieren
Installieren
Programmierung
JavaScript
In einem bestehenden Quiz die Antworten "shuffeln"
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Auf Thema antworten
Beitrag
[QUOTE="dirkfastner, post: 15137, member: 6384"] Hallo in die Runde, ich bin der Neue hier :cool: und das erste Mal in einem Forum. Es geht darum, in ein bestehendem Quiz (html, css, js) die Antwortreihenfolge zu verändern. Das Quiz ist ein Template und als Zip angehängt. Die Fragen sind schon randomisiert. Derzeit sieht der Code folgend aus. [COLOR=rgb(84, 172, 210)]let shuffledQuestions = [] //empty array to hold shuffled selected questions out of all available questions function handleQuestions() { //function to shuffle and push 10 questions to shuffledQuestions array //app would be dealing with 10questions per session while (shuffledQuestions.length <= 9) { const random = questions[Math.floor(Math.random() * questions.length)] if (!shuffledQuestions.includes(random)) { shuffledQuestions.push(random) } } } let questionNumber = 1 //holds the current question number let playerScore = 0 //holds the player score let wrongAttempt = 0 //amount of wrong answers picked by player let indexNumber = 0 //will be used in displaying next question // function for displaying next question in the array to dom //also handles displaying players and quiz information to dom function NextQuestion(index) { handleQuestions() const currentQuestion = shuffledQuestions[index] document.getElementById("question-number").innerHTML = questionNumber document.getElementById("player-score").innerHTML = playerScore document.getElementById("display-question").innerHTML = currentQuestion.question; document.getElementById("option-one-label").innerHTML = currentQuestion.optionA; document.getElementById("option-two-label").innerHTML = currentQuestion.optionB; document.getElementById("option-three-label").innerHTML = currentQuestion.optionC; document.getElementById("option-four-label").innerHTML = currentQuestion.optionD; } function checkForAnswer() { const currentQuestion = shuffledQuestions[indexNumber] //gets current Question const currentQuestionAnswer = currentQuestion.correctOption //gets current Question's answer const options = document.getElementsByName("option"); //gets all elements in dom with name of 'option' (in this the radio inputs) let correctOption = null options.forEach((option) => { if (option.value === currentQuestionAnswer) { //get's correct's radio input with correct answer correctOption = option.labels[0].id } }) //checking to make sure a radio input has been checked or an option being chosen if (options[0].checked === false && options[1].checked === false && options[2].checked === false && options[3].checked == false) { document.getElementById('option-modal').style.display = "flex" } //checking if checked radio button is same as answer options.forEach((option) => { if (option.checked === true && option.value === currentQuestionAnswer) { document.getElementById(correctOption).style.backgroundColor = "green" playerScore++ //adding to player's score indexNumber++ //adding 1 to index so has to display next question.. //set to delay question number till when next question loads setTimeout(() => { questionNumber++ }, 1000) } else if (option.checked && option.value !== currentQuestionAnswer) { const wrongLabelId = option.labels[0].id document.getElementById(wrongLabelId).style.backgroundColor = "red" document.getElementById(correctOption).style.backgroundColor = "green" wrongAttempt++ //adds 1 to wrong attempts indexNumber++ //set to delay question number till when next question loads setTimeout(() => { questionNumber++ }, 1000) } }) }[/COLOR] Vielen Dank im Voraus Dirk [/QUOTE]
Zitate
Authentifizierung
Antworten
Programmierung
JavaScript
In einem bestehenden Quiz die Antworten "shuffeln"
Oben
Unten