Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.06.2017, 22:22
Интересующийся
Отправить личное сообщение для mikefromru Посмотреть профиль Найти все сообщения от mikefromru
 
Регистрация: 24.11.2016
Сообщений: 13

Как вывести по очередно сгенерированные кнопки?
У меня есть функция для генерации кнопок из списка mylist. Мне нужно из этого списка получить первые два елемента (кнопки), потом после нажатия мышкой на одну из этих кнопок на их место появлялись следующие два елемента (кнопки) и так далее пока в списке mylist не закончатся элементы.
Я смог реализовать только это, что просто генерит кнопки из моего списка.

<div id="test"></div>


function genButtons(a) {
    for (var x = 0; x < a.length; x++) {
      var btn = document.createElement('input')
      btn.id = 'b' + x;
      btn.value = a[x];
      btn.type = 'button';
      document.getElementById('test').appendChild(btn)

      btn.addEventListener('click', function() {
        // genButtons(mylist)
      })
    }
  }

  var mylist = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten']
 genButtons(mylist)
Ответить с цитированием
  #2 (permalink)  
Старый 01.06.2017, 22:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

mikefromru,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>


</head>

<body>
<div id="test"></div>
<script>
window.addEventListener("DOMContentLoaded", function() {
         var x = 0;
    function genButtons(a) {
        var parent = document.getElementById("test"),
            inp = parent.querySelectorAll("[id^='b']");
        [].forEach.call(inp, function(btn) {
            parent.removeChild(btn)
        });
        a.slice(0, 2).forEach(function(str) {
            var btn = document.createElement("input");
            btn.id = "b" + x++;
            btn.value = str;
            btn.type = "button";
            parent.appendChild(btn);
            btn.addEventListener("click", function() {
                genButtons(a.slice(2))
            })
        })
    }
    var mylist = ["one", "two", "three", "four", "five", "six", "seven", "eight",
        "nine", "ten"
    ];
    genButtons(mylist)
});
  </script>
</body>
</html>

Последний раз редактировалось рони, 02.06.2017 в 01:29. Причина: исправил x
Ответить с цитированием
  #3 (permalink)  
Старый 01.06.2017, 23:11
Интересующийся
Отправить личное сообщение для mikefromru Посмотреть профиль Найти все сообщения от mikefromru
 
Регистрация: 24.11.2016
Сообщений: 13

Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как открыть все сгенерированные ссылки с общим id в списке одним кликом? malefikus13 Общие вопросы Javascript 12 22.07.2015 08:52
как вывести значение из переменной nudist Общие вопросы Javascript 2 06.07.2015 14:22
как можно вывести рекламный код под заголовком в статье. kizerd jQuery 1 05.05.2015 09:00
как вывести сообщение только когда селект не выбран imediasun1 Элементы интерфейса 5 11.05.2013 17:40
Подскажите, пжлст, как вывести в тот же документ результат ф-ции? LexXxeL Элементы интерфейса 4 13.05.2009 13:26