Показать сообщение отдельно
  #4 (permalink)  
Старый 25.03.2022, 12:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

Volonter,
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .ticket-block {
            display: flex;
            width: 20em;
        }
        .ticket-item {
            text-align: center;
            font-size: 3em;
            border: 1px solid #000080;
            width: 100%;
        }
    </style>
</head>
<body>
    <input id="tcount" name="" type="number" min="1" max="6" value="2">
    <input id="createTicketsButton" name="" type="button" value="createTickets" onclick="createTickets()">
    <div id="ticketslist"></div>
    <script>
        function createTickets() {
            let tcount = +document.getElementById('tcount').value;
            let numbers = generate(36, 6);
            let ticket = ''
            for (t = 0; t < tcount; t++) {
                let ticketItem = '';
                numbers.next().value.forEach(n => {
                    ticketItem += `<div class="ticket-item" data-select="${n}">${n}</div>`
                })
                ticket += `<div class="ticket-block">${ticketItem}</div>`
            }
            ticketslist.insertAdjacentHTML('beforeend', ticket);
            createTicketsButton.disabled = true
        }
        function generate(length, limit) {
            let arr = Array(length);
            for (let i = 0; i < length; i++) {
                let k = Math.floor(Math.random() * length);
                let num = arr[k] || k + 1;
                arr[k] = arr[i] || i + 1;
                arr[i] = num;
            }
            return {
                [Symbol.iterator]() {
                    return this;
                },
                arr,
                next() {
                   
                    if (this.arr.length >= limit) {
                        return {
                            done: false,
                            value: this.arr.splice(0, limit)
                        };
                    } else {
                        return {
                            done: true
                        };
                    }
                }
            };
        }
    </script>
</body>
</html>
Ответить с цитированием