Показать сообщение отдельно
  #4 (permalink)  
Старый 04.06.2023, 12:08
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

На мой взгляд не следует использовать элементы, которых не существует в спецификации (<text>)
Сообщение от CopyDuck
Или чтобы рандомно выведенные вопросы хотя бы не повторялись?
<!DOCTYPE HTML>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .item:not(.open) {
            display: none;
        }
        .item>.answer:not(.show) {
            display: none;
        }
    </style>
    <script>
        document.addEventListener('DOMContentLoaded', () => {
            const brestart = document.getElementById('brestart');
            const bquestion = document.getElementById('bquestion');
            const banswer = document.getElementById('banswer');
            const items = document.querySelectorAll('.item');
            let itemopen;

            bquestion.addEventListener('click', () => {
                const itemsnotshown = document.querySelectorAll('.item:not(.shown)');  
                if ( itemopen) {
                    itemopen.classList.remove('open');
                    itemopen.querySelector('.answer').classList.remove('show')                   
                }           
                if (itemsnotshown.length === 0) return;
                const n = Math.floor(Math.random() * itemsnotshown.length);
                itemopen=itemsnotshown[n];
                itemopen.classList.add('open', 'shown');             
            });

            banswer.addEventListener('click', () => {
                itemopen.querySelector('.answer').classList.add('show');
            });

            brestart.addEventListener('click', () => {
                items.forEach(item => item.classList.remove('shown'));
                if ( itemopen) {
                    itemopen.classList.remove('open');
                    itemopen.querySelector('.answer').classList.remove('show')                   
                }           
            })
        })
    </script>
</head>
<body>
    <button type="button" id="brestart">Повторить</button>
    <br>
    <button type="button" id="bquestion">Вопрос</button>
    <button type="button" id="banswer">Ответ</button>
    <div class="item">
        <p class="question">Вопрос 1</p>
        <p class="answer"> Ответ 1</p>
    </div>
    <div class="item">
        <p class="question">Вопрос 2</p>
        <p class="answer"> Ответ 2</p>
    </div>
    <div class="item">
        <p class="question">Вопрос 3</p>
        <p class="answer"> Ответ 3</p>
    </div>
    <div class="item">
        <p class="question">Вопрос 4</p>
        <p class="answer"> Ответ 4</p>
    </div>
    <div class="item">
        <p class="question">Вопрос 5</p>
        <p class="answer"> Ответ 5</p>
    </div>

</body>
</html>

Последний раз редактировалось voraa, 04.06.2023 в 13:23.
Ответить с цитированием