<divs> 배열을 반복하고 자바 스크립트를 사용할 때마다 하나씩 만 표시

sol_s

javascript와 html을 사용하여 작은 퀴즈 응용 프로그램을 만들고 있습니다. 퀴즈는 사용자가 페이지에서 하나의 질문 만 볼 수 있도록 설정됩니다. 이전 및 다음 버튼을 누르면 사용자에게 이전 및 다음 질문이 각각 표시됩니다.

내가하려는 것은 getElementByClassName에 의해 반환 된 요소 배열을 반복하고 사용자가 "다음"버튼을 누를 때마다 다음 항목을 표시하는 것입니다. 내가 현재 가지고있는 문제는 "다음"버튼을 누르면 첫 번째 요소 이후에 오는 모든 단일 요소가 페이지에 표시된다는 것입니다. 사용자에게 바로 이전 요소를 표시하는 "이전"버튼도 있지만 배열의 첫 번째 요소를 제거하고 "정의되지 않은 '표시'속성을 설정할 수 없음"오류와 나머지 div를 표시합니다. 요소는 페이지에 계속 표시됩니다.

이것은 현재 코드 HTML입니다.

const nextBtn = document.getElementById('next');
const prevBtn = document.getElementById('prev');
const quizes = document.getElementsByClassName('quiz');
//show and hide divs when user presses next
nextBtn.addEventListener('click', function() {
  for (i = 0; i < quizes.length; i++) {
    quizes[i].style.display = "block";
  }
})

prevBtn.addEventListener('click', function() {
  if (quizes.length > 1) {
    for (i = 0; quizes.length > 1; i--) {
      if (quizes[i].display = "block") {
        quizes[i].style.display = "none";
      }
    }
  } else {
    alert('no more previous questions!')
  }
})
<div class="quiz">
  <p>Question 1</p>
  <input type="radio" name="answer" value="1">
  <input type="radio" name="answer" value="2">
  <input type="radio" name="answer" value="3">
</div>

<div class="quiz" style="display: none">
  <p>Question 2</p>
  <input type="radio" name="answer" value="1">
  <input type="radio" name="answer" value="2">
  <input type="radio" name="answer" value="3">
</div>
<button id="prev">Prev</button>
<button id="next">Next</button>

오류에 대한 설명과 올바른 방향에 대한 힌트를 보내 주시면 감사하겠습니다. 감사합니다.

구가 타이 더

현재 표시되는 질문을 추적 한 다음 활성 질문을 표시하기 전에 다른 모든 질문을 전환하는 것이 좋습니다.

나는 아래에 간단한 예를 만들었습니다. 나는 당신이 뒤에 생각을 이해할 수 있기를 바랍니다. 그렇지 않으면 저에게 알려주십시오.

const nextBtn = document.getElementById('next');
const prevBtn = document.getElementById('prev');
const quizes = document.querySelectorAll('.quiz');
const total = quizes.length;
let count = 0;

const hideAll = () => quizes.forEach( q => q.style.display = 'none' );

const showNext = () => {
    if(count < total-1) count++;
  else {
    alert('no more questions');
    return;
  }
  
  hideAll();
  quizes[count].style.display = 'block';
}

const showPrev = () => {
    if(count > 0) count--;
  else {
    alert('no more previous questions');
    return;
  }
  
  hideAll();
  quizes[count].style.display = 'block';
}



//show and hide divs when user presses next
nextBtn.addEventListener('click',function(){
  showNext();
})


prevBtn.addEventListener('click',function(){
  showPrev();
})
<div class="quiz">
        <p>Question 1</p>
        <input type="radio" name="answer" value="1">
        <input type="radio" name="answer" value="2">
        <input type="radio" name="answer" value="3">
        </div>

        <div class="quiz" style="display: none">
        <p>Question 2</p>
        <input type="radio"  name="answer" value="1">
        <input type="radio"  name="answer" value="2">
        <input type="radio"  name="answer" value="3">
        </div>

<div class="quiz" style="display: none">
        <p>Question 3</p>
        <input type="radio"  name="answer" value="1">
        <input type="radio"  name="answer" value="2">
        <input type="radio"  name="answer" value="3">
        </div>
        
        <div class="quiz" style="display: none">
        <p>Question 4</p>
        <input type="radio"  name="answer" value="1">
        <input type="radio"  name="answer" value="2">
        <input type="radio"  name="answer" value="3">
        </div>
        
<button id="prev">Prev</button>
<button id="next">Next</button>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

두 배열을 하나씩 비교하고 자바 스크립트 개발 함수를 사용하여 새 배열을 만듭니다.

분류에서Dev

다차원 자바 스크립트 배열을 반복하고 새 배열을 만드시겠습니까?

분류에서Dev

자바 스크립트 배열을 반복하고 배열의 일부만 표시 한 다음 반복하는 방법

분류에서Dev

객체의 배열을 반복하고 자바 스크립트 만 사용하여 기본 앵커 href 링크를 방지합니다.

분류에서Dev

자바 스크립트 : 배열을 통해 다시 반복 할 때 개체 속성을 재설정하고 싶습니다.

분류에서Dev

PHP에서 다음 값을 사용할 때마다 배열 값 (x)을 계산 한 다음 스크립트 (x)를 반복 하시겠습니까?

분류에서Dev

자바 스크립트에서 다른 매개 변수를 사용하여 배열을 반복하기 위해 루프 다시 시작 / 재사용

분류에서Dev

자바 스크립트를 사용하여 태그 'a'의 목록 값을 하나씩 가져옵니다.

분류에서Dev

자바 스크립트를 통해 HTML 페이지의 기존 표제 태그를 사용하여 북마크 시스템을 만드는 방법

분류에서Dev

자바 스크립트를 사용하여 시스템 시간을 추출하여 카운트 다운 표시

분류에서Dev

자바 스크립트를 사용하여 UL에 배열 표시

분류에서Dev

자바 스크립트를 사용하여 여러 배열 표시

분류에서Dev

자바 스크립트를 사용하여 객체 내부의 배열을 반복합니다.

분류에서Dev

자바 스크립트를 사용하여 텍스트 상자를 기반으로 드롭 다운을 표시하거나 숨기는 방법

분류에서Dev

배열 사이의 자바 스크립트 마하 좌표

분류에서Dev

사용자가 자바 스크립트를 사용하여 입력 할 때 어떻게 팝업을 표시 할 수 있습니까?

분류에서Dev

자바 스크립트 로딩 기능을 하나씩 실행하도록 만드십시오.

분류에서Dev

자바 스크립트 로딩 기능을 하나씩 실행하도록 만드십시오.

분류에서Dev

자바 스크립트 배열을 사용하여 HTML 테이블을 만드시겠습니까?

분류에서Dev

경우를 기본마다 시간을 반환 자바 스크립트에 문을 전환하지만

분류에서Dev

자바 스크립트 배열을 수정하고 배열로 푸시하면 배열의 모든 요소에 복사됩니다.

분류에서Dev

배열을 반복하고 해당 배열의 객체 내에서 반응 및 자바 스크립트로 데이터를 표시하는 방법

분류에서Dev

자바 스크립트 : @hotmail 계정을 사용할 때 경고 표시

분류에서Dev

자바 스크립트에서 for 루프를 사용하여 문자열에 모음을 표시 할 수 없습니다.

분류에서Dev

자바 스크립트를 사용하여 다른 줄마다 문자열을 삽입 할 수 있습니까?

분류에서Dev

사용자에게 크기와 배열을 입력하도록 요청하지만 벡터를 인쇄 할 때 출력으로 '0'만 표시됩니다.

분류에서Dev

자바 스크립트에서 두 개의 배열에 대해 각 루프마다 하나씩 사용하는 방법은 무엇입니까?

분류에서Dev

푸시 메서드를 사용하여 자바 스크립트 배열을 반복 할 수없는 이유는 무엇입니까?

분류에서Dev

자바 스크립트를 사용하여 다차원 배열 (nXn) 행렬 만들기

Related 관련 기사

  1. 1

    두 배열을 하나씩 비교하고 자바 스크립트 개발 함수를 사용하여 새 배열을 만듭니다.

  2. 2

    다차원 자바 스크립트 배열을 반복하고 새 배열을 만드시겠습니까?

  3. 3

    자바 스크립트 배열을 반복하고 배열의 일부만 표시 한 다음 반복하는 방법

  4. 4

    객체의 배열을 반복하고 자바 스크립트 만 사용하여 기본 앵커 href 링크를 방지합니다.

  5. 5

    자바 스크립트 : 배열을 통해 다시 반복 할 때 개체 속성을 재설정하고 싶습니다.

  6. 6

    PHP에서 다음 값을 사용할 때마다 배열 값 (x)을 계산 한 다음 스크립트 (x)를 반복 하시겠습니까?

  7. 7

    자바 스크립트에서 다른 매개 변수를 사용하여 배열을 반복하기 위해 루프 다시 시작 / 재사용

  8. 8

    자바 스크립트를 사용하여 태그 'a'의 목록 값을 하나씩 가져옵니다.

  9. 9

    자바 스크립트를 통해 HTML 페이지의 기존 표제 태그를 사용하여 북마크 시스템을 만드는 방법

  10. 10

    자바 스크립트를 사용하여 시스템 시간을 추출하여 카운트 다운 표시

  11. 11

    자바 스크립트를 사용하여 UL에 배열 표시

  12. 12

    자바 스크립트를 사용하여 여러 배열 표시

  13. 13

    자바 스크립트를 사용하여 객체 내부의 배열을 반복합니다.

  14. 14

    자바 스크립트를 사용하여 텍스트 상자를 기반으로 드롭 다운을 표시하거나 숨기는 방법

  15. 15

    배열 사이의 자바 스크립트 마하 좌표

  16. 16

    사용자가 자바 스크립트를 사용하여 입력 할 때 어떻게 팝업을 표시 할 수 있습니까?

  17. 17

    자바 스크립트 로딩 기능을 하나씩 실행하도록 만드십시오.

  18. 18

    자바 스크립트 로딩 기능을 하나씩 실행하도록 만드십시오.

  19. 19

    자바 스크립트 배열을 사용하여 HTML 테이블을 만드시겠습니까?

  20. 20

    경우를 기본마다 시간을 반환 자바 스크립트에 문을 전환하지만

  21. 21

    자바 스크립트 배열을 수정하고 배열로 푸시하면 배열의 모든 요소에 복사됩니다.

  22. 22

    배열을 반복하고 해당 배열의 객체 내에서 반응 및 자바 스크립트로 데이터를 표시하는 방법

  23. 23

    자바 스크립트 : @hotmail 계정을 사용할 때 경고 표시

  24. 24

    자바 스크립트에서 for 루프를 사용하여 문자열에 모음을 표시 할 수 없습니다.

  25. 25

    자바 스크립트를 사용하여 다른 줄마다 문자열을 삽입 할 수 있습니까?

  26. 26

    사용자에게 크기와 배열을 입력하도록 요청하지만 벡터를 인쇄 할 때 출력으로 '0'만 표시됩니다.

  27. 27

    자바 스크립트에서 두 개의 배열에 대해 각 루프마다 하나씩 사용하는 방법은 무엇입니까?

  28. 28

    푸시 메서드를 사용하여 자바 스크립트 배열을 반복 할 수없는 이유는 무엇입니까?

  29. 29

    자바 스크립트를 사용하여 다차원 배열 (nXn) 행렬 만들기

뜨겁다태그

보관