Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menambah imej pada aplikasi kuiz JavaScript

Saya cuba menambah imej pada apl kuiz JavaScript tetapi saya telah mencuba segala-galanya, menambah atribut "img src" dengan cara yang berbeza tetapi tiada apa yang kelihatan berfungsi... Tolong bantu menjadikannya berfungsi untuk projek yang perlu selesai. Ini kod saya...

const quizData = [{
    question: "Which language runs in a web browser?",
    a: "Java",
    b: "C",
    c: "Python",
    d: "javascript",
    correct: "d",

  },
  {
    question: "What does CSS stand for?",
    a: "Central Style Sheets",
    b: "Cascading Style Sheets",
    c: "Cascading Simple Sheets",
    d: "Cars SUVs Sailboats",
    correct: "b",
  },
  {
    question: "What does HTML stand for?",
    a: "Hypertext Markup Language",
    b: "Hypertext Markdown Language",
    c: "Hyperloop Machine Language",
    d: "Helicopters Terminals Motorboats Lamborginis",
    correct: "a",
  },
  {
    question: "What year was JavaScript launched?",
    a: "1996",
    b: "1995",
    c: "1994",
    d: "none of the above",
    correct: "b",
  },
  {
    question: "Is this a test run?",
    a: "yes it is",
    b: "why do you care?",
    c: "stop asking",
    d: "I don't know",
    correct: "d",
  },
  {
    question: "where do you see yourself in  years?",
    a: "In the gutter",
    b: "Forbes magazine",
    c: "Simple guy",
    d: "outside the country",
    correct: "b",
  },


];

const quiz = document.getElementById('quiz')
const answerEls = document.querySelectorAll('.answer')
const questionEl = document.getElementById('question')
const a_text = document.getElementById('a_text')
const b_text = document.getElementById('b_text')
const c_text = document.getElementById('c_text')
const d_text = document.getElementById('d_text')
const submitBtn = document.getElementById('submit')


let currentQuiz = 0
let score = 0

loadQuiz()

function loadQuiz() {

  deselectAnswers()

  const currentQuizData = quizData[currentQuiz]

  questionEl.innerText = currentQuizData.question
  a_text.innerText = currentQuizData.a
  b_text.innerText = currentQuizData.b
  c_text.innerText = currentQuizData.c
  d_text.innerText = currentQuizData.d
}

function deselectAnswers() {
  answerEls.forEach(answerEl => answerEl.checked = false)
}

function getSelected() {
  let answer
  answerEls.forEach(answerEl => {
    if (answerEl.checked) {
      answer = answerEl.id
    }
  })
  return answer
}


submitBtn.addEventListener('click', () => {
  const answer = getSelected()
  if (answer) {
    if (answer === quizData[currentQuiz].correct) {
      score++
    }

    currentQuiz++

    if (currentQuiz < quizData.length) {
      loadQuiz()
    } else {
      quiz.innerHTML = `
           <h2>You answered ${score}/${quizData.length} questions correctly</h2>
          
          

           <button onclick="location.reload()">Reload</button>
           `
    }
  }
})
<div class="quiz-container" id="quiz">
  <div class="quiz-header">
    <h2 id="question">Question Text</h2>
    <ul>
      <li> <input type="radio" name="answer" id="a" class="answer"> <label for="a" id="a_text">Answer</label> </li>
      <li> <input type="radio" name="answer" id="b" class="answer"> <label for="b" id="b_text">Answer</label> </li>
    </ul>
  </div>
  <button id="submit">Submit</button>
</div>

Saya ingin menambah imej yang berbeza apabila soalan berubah. apa patut saya buat?

P粉333186285P粉333186285258 hari yang lalu332

membalas semua(1)saya akan balas

  • P粉898107874

    P粉8981078742024-02-04 00:17:38

    Saya menganggap anda mahu imej muncul pada penghujung kuiz bersama-sama dengan innerHTML. Mungkin URL yang anda gunakan tidak mutlak? Saya menambah imej dengan URL mutlak dan ia berfungsi:

    const quizData = [{
        question: "Which language runs in a web browser?", correct: "d",
        a: "Java", b: "C", c: "Python", d: "javascript",
        img: "https://placekitten.com/200/200"
      },
      {
        question: "What does CSS stand for?", correct: "b",
        a: "Central Style Sheets", b: "Cascading Style Sheets", c: "Cascading Simple Sheets", d: "Cars SUVs Sailboats",
        img: "https://placekitten.com/300/200"
      },
      {
        question: "What does HTML stand for?", correct: "a",
        a: "Hypertext Markup Language", b: "Hypertext Markdown Language", c: "Hyperloop Machine Language", d: "Helicopters Terminals Motorboats Lamborginis",
        img: "https://placekitten.com/200/300"
      },
      {
        question: "What year was JavaScript launched?", correct: "b",
        a: "1996", b: "1995", c: "1994", d: "none of the above",
        img: "https://placekitten.com/400/200"
      },
      {
        question: "Is this a test run?", correct: "d",
        a: "yes it is", b: "why do you care?", c: "stop asking", d: "I don't know",
        img: "https://placekitten.com/200/400"
      },
      {
        question: "where do you see yourself in  years?", correct: "b",
        a: "In the gutter", b: "Forbes magazine", c: "Simple guy", d: "outside the country",
        img: "https://placekitten.com/500/200"
    }];
    
    const quiz = document.getElementById('quiz')
    const answerEls = document.querySelectorAll('.answer')
    const questionEl = document.getElementById('question')
    const a_text = document.getElementById('a_text')
    const b_text = document.getElementById('b_text')
    const c_text = document.getElementById('c_text')
    const d_text = document.getElementById('d_text')
    const submitBtn = document.getElementById('submit')
    const questImg = document.querySelector('.question-container > img')
    
    let currentQuiz = 0
    let score = 0
    
    loadQuiz()
    
    function loadQuiz() {
    
      deselectAnswers()
    
      const currentQuizData = quizData[currentQuiz]
      questionEl.innerText = currentQuizData.question
      a_text.innerText = currentQuizData.a
      b_text.innerText = currentQuizData.b
      c_text.innerText = currentQuizData.c
      d_text.innerText = currentQuizData.d
      questImg.src = currentQuizData.img
    }
    
    function deselectAnswers() {
      answerEls.forEach(answerEl => answerEl.checked = false)
    }
    
    function getSelected() {
      let answer
      answerEls.forEach(answerEl => {
        if (answerEl.checked) {
          answer = answerEl.id
        }
      })
      return answer
    }
    
    
    submitBtn.addEventListener('click', () => {
    
          const answer = getSelected()
          
          if (answer) {
            if (answer === quizData[currentQuiz].correct) {
              score++
            }
            currentQuiz++;        
            
          if(currentQuiz < quizData.length) {
               loadQuiz()
           } else {
               quiz.innerHTML = `
               

    You answered ${score}/${quizData.length} questions correctly

    ` } } })
    .question-container{
      display: flex;
      align-items: flex-end;
    }
    .question-container > img{
      width: 100px;
      margin-left: 10px;
    }





    balas
    0
  • Batalbalas