Динамическое добавление кнопок HTML

Мне нужен список кнопок с функциями, но кнопки не будут известны, пока веб-сайт не загрузится. Это реализация, которую я использовал:

var list = [1, 2, 3, 4, 5, 6, 7, 8];
function placeAnotherNumber(num)
{
	document.getElementById("NumLabel").innerHTML += " " + num;
}

function putButtons()
{
	var temp = "";
	for(i = 0; i < list.length; i++)
	{
		temp += "<button onclick='placeAnotherNumber(" + list[i] + ");'>" + (i+1) + "</button>";
	}
	document.getElementById("ButtonLabel").innerHTML = temp;
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<button onclick = "putButtons()";>Load</button>
<br/>
<label id='ButtonLabel'></label>
<br/>
<label id='NumLabel'></label>

</body>
</html>

После загрузки кнопок я надеюсь, что функциональность будет заключаться в добавлении любого числа, которое я нажимаю, на этикетку под кнопками. Он делает это, но также добавляет 1 после. Он вызывает метод дважды с номером, а также с первым членом в списке.

В Chrome это работает так, как ожидалось, но мой реальный код, над которым я работаю, все еще не работает.

Это моя вторая неделя HTML / JavaScript, и я не уверен, в чем проблема. Возможно просто плохая реализация. Я даже не уверен, какие термины я должен был найти в Google, чтобы решить эту проблему (добавление динамической кнопки?).

Есть идеи, как исправить этот метод или как я действительно должен выполнять эту задачу?

Заранее спасибо.

Код выше работает. В чем проблема?

Matus Dubrava 07.06.2018 23:14

Похоже, это не работало только в Internet Explorer

CrazyCranberry 08.06.2018 15:51
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
75
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Приведенный выше код работает, он выделяет кнопку 1, когда вы нажимаете на другую кнопку, но не добавляет 1 после последнего добавленного числа. Если вы измените элементы метки на div, то это не будет выглядеть так, как будто вы нажимаете 1. Вы не должны использовать ярлыки для чего-то подобного. Их следует зарезервировать для ярлыков на элементах формы ввода в целом.

В Internet Explorer это не работало. Переход на div очень помог мне в этом примере и в моей реальной проблеме. Большое спасибо!

CrazyCranberry 08.06.2018 15:52

Другие вопросы по теме