简体   繁体   English

使用javascript在html中跟踪真/假数据集

[英]Tracking True/False dataset in html using javascript

I'm creating a coding quiz and using true/ false datasets in HTML to define the answer.我正在创建一个编码测验并使用 HTML 中的真/假数据集来定义答案。 My question is, how would I utilize these datasets to track true/ false in JS?我的问题是,我将如何利用这些数据集来跟踪 JS 中的真/假? My end goal is to display the score of the quiz.我的最终目标是显示测验的分数。

Here's what it looks like so far:这是到目前为止的样子:

<div class="post" id="question1" style="display: none;">
        <h3>Question 1:</h3>
        <h4>What does css stand for?</h4>
        <button onclick="display2()" data-answer="true" class="answer-btn">
          Casscading Style Sheet
        </button>
        <button data-answer="false" class="answer-btn">
          Condensed Style Sheet
        </button>
        <button data-answer="false" class="answer-btn">
          Cooperative Sea Shanty
        </button>
        <button data-answer="false" class="answer-btn">
          Colonial Short Shorts
        </button>
      </div>

JavaScript: JavaScript:

var dataTrue
function dataTrue () {
    if (document.getElementsByTagName(data-answer || true, score + 20));
}
var score = 0 + dataTrue();

You can use querySelector and attributes to access the answer:您可以使用querySelector和属性来访问答案:

 var answer = question1.querySelector('[data-answer=true]').innerText console.log("correct answer was:"+answer)
 <div class="post" id="question1" style="display: none;"> <h3>Question 1:</h3> <h4>What does css stand for?</h4> <button onclick="display2()" data-answer="true" class="answer-btn"> Casscading Style Sheet </button> <button data-answer="false" class="answer-btn"> Condensed Style Sheet </button> <button data-answer="false" class="answer-btn"> Cooperative Sea Shanty </button> <button data-answer="false" class="answer-btn"> Colonial Short Shorts </button> </div>

One way is to create a click listener, then access the dataset through e.target.dataset.answer .一种方法是创建一个点击监听器,然后通过e.target.dataset.answer访问数据集。 I went ahead and added another question and a final page to show one way of tracking questions and scores.我继续添加了另一个问题和最后一页,以显示跟踪问题和分数的一种方式。

 let score = 0, onQuestion = 0 window.addEventListener('DOMContentLoaded', () => { document.querySelectorAll('.question')[onQuestion].classList.add('active') document.querySelectorAll('.question button').forEach(b => { b.addEventListener('click', e => { if (e.target.dataset.answer === 'true') { console.log('correct!'); score += 20; document.querySelectorAll('.score').forEach(el => el.innerHTML = score); } else console.log('Failed!'); document.querySelector('.question.active').classList.remove('active'); document.querySelectorAll('.question')[++onQuestion] ? .classList.add('active') }) }) })
 .question { display: none; } .question.active { display: block }
 <div class="post question" id="question1"> <h3>Question 1:</h3> <h4>What does css stand for?</h4> <button data-answer="true" class="answer-btn"> Casscading Style Sheet </button> <button data-answer="false" class="answer-btn"> Condensed Style Sheet </button> <button data-answer="false" class="answer-btn"> Cooperative Sea Shanty </button> <button data-answer="false" class="answer-btn"> Colonial Short Shorts </button> </div> <div class="post question" id="question2"> <h3>Question 2:</h3> <h4>What does abc stand for?</h4> <button data-answer="true" class="answer-btn"> Always Be Closing </button> <button data-answer="false" class="answer-btn"> Alphabets Be Cool </button> <button data-answer="false" class="answer-btn"> Arnold Bites Charlie </button> <button data-answer="false" class="answer-btn"> Arny's Bitter Cheeses </button> </div> <div class="post question" id="question2"> <h1>Quiz Complete. Your score: <span class='score'></span></h1> </div> <hr> <div>Your score: <span class='score'>0</span></div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM