Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.04.2020, 23:34
Интересующийся
Отправить личное сообщение для demi379 Посмотреть профиль Найти все сообщения от demi379
 
Регистрация: 07.08.2019
Сообщений: 14

При нажатии на кнопку создать новую кнопку
Добрый день.
Пробую решить задачку. При нажатии на кнопку, создается новая (назовем ее: 2) например , и уже при нажатии на новую (2), создается еще одна, а эта же кнопка (2) принимает css класс black (окрашивается в черный цвет).
У меня выдает ошибку, мол не видит он еще эту кнопку 2, я понимаю что выполняется все и сразу, но может есть вариант.
Желательно исправить этот скрипт, а не новый писать (если это возможно)
Спасибо

let start = document.getElementsByTagName('button')[0];

start.addEventListener('click', function () {
	let btn1 = document.createElement('button');
		document.body.appendChild(btn1)
		btn1.innerHTML = 'hi';
		btn1.setAttribute("id", "first");
	});


let start2 = document.getElementsById(first);;
start2.addEventListener('click', function () {
	
	let btn2 = document.createElement('button');
		document.body.appendChild(btn2)
		btn2.innerHTML = 'hi';
		btn2.setAttribute("id", "second");
                btn2.classList.add('black');
	

});

Последний раз редактировалось demi379, 26.04.2020 в 23:37.
Ответить с цитированием
  #2 (permalink)  
Старый 26.04.2020, 23:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

demi379,
перенести строки 11 - 21 в строку 8, иначе они не имеют смысла, нельзя назначить клик тому чего нет, и кавычки не забудьте строка 11.
Ответить с цитированием
  #3 (permalink)  
Старый 27.04.2020, 00:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

demi379,
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">    .black {
      background-color: #000000;
      color: #FFFFFF;
  }

  </style>

  <script>
document.addEventListener( "DOMContentLoaded" , function() {
let start = document.querySelector('button');
let num = 0;
start.addEventListener('click', function () {
	let btn = document.createElement('button');
		document.body.appendChild(btn)
		btn.innerHTML = `hi ${++num}`;
		btn.id = `first${num}`;

        btn.addEventListener('click', function () {
	    let btn = document.createElement('button');
		document.body.appendChild(btn)
		btn.innerHTML = `hi ${++num}`;
		btn.id = `second${num}`;
        btn.classList.add('black');
        });

	});

   });
  </script>
</head>
<body>
<button>button 0</button>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 27.04.2020, 12:03
Интересующийся
Отправить личное сообщение для demi379 Посмотреть профиль Найти все сообщения от demi379
 
Регистрация: 07.08.2019
Сообщений: 14

спасибо сработало частично
спасибо
видимо эти строки я еще не понимаю, со знаком $
btn.innerHTML = `hi ${++num}`;
btn.id = `first${num}`;

Да действительно сработало и класс присвоился, но почему то не окрасился в другой цвет. (как задано в сss для этого класса)
Ответить с цитированием
  #5 (permalink)  
Старый 27.04.2020, 13:42
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,707

Сообщение от demi379 Посмотреть сообщение
спасибо
видимо эти строки я еще не понимаю, со знаком $
btn.innerHTML = `hi ${++num}`;
btn.id = `first${num}`;
https://developer.mozilla.org/ru/doc...mplate_strings

Что бы окрашивалась вторая кнопка (hi1), строку 28 надо заменить на
this.classList.add('black');

Последний раз редактировалось voraa, 27.04.2020 в 13:49.
Ответить с цитированием
  #6 (permalink)  
Старый 27.04.2020, 13:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от demi379
но почему то не окрасился в другой цвет.
а где присвоение класса для first?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена цвета/картинки фона при нажатии на элемент Webtest Элементы интерфейса 16 20.04.2017 22:36
ajax запрос при нажатии на кнопку juramaj AJAX и COMET 5 13.03.2015 19:02
Смена класса у отдельного div при нажатии на ссылку Maxim-Ra Элементы интерфейса 6 15.02.2015 12:20
Активация checkbox при нажатии на текст и изменение стиля у текста. ilyakor jQuery 2 10.06.2014 19:34
вывод нужного текста в текстовом поле при нажатии на кнопку! fifo4ka Общие вопросы Javascript 7 06.05.2008 13:36