Вы не добавляете никаких элементов a
в DOM в вашем цикле for
, поэтому он останавливается, когда завершает работу с теми элементами в #main
, которые присутствуют при его запуске (есть только один).
Возможно, вы вместо этого хотите использовать делегирование событий на main
: вы обрабатываете нажатие на main
, но затем что-то делаете с ним только в том случае, если щелчок прошел через a.btn
;см. комментарии:
// Get the element, not the `a` elements within it
var main = document.getElementById("main")
// Listen for clicks on it
main.addEventListener("click", function(e) {
// If this click passed through an `a.btn` within #main (this``)...
var btn = e.target.closest("a.btn");
if (btn && this.contains(btn)) {
// Clone the btn's parentElement, append to #main
var node = btn.parentElement;
var clone = node.cloneNode(true);
main.appendChild(clone);
}
});
<div id="main">
<div class="input__container">
<label>Input</label>
<!-- Note that `id` and `name` are not allowed to be blank; just leave them off -->
<input placeholder="Placeholder..." class="input" type="text"/>
<a class="btn">+</a>
</div>
</div>