Я пытаюсь создать элемент в JavaScript и применить его ко всем элементам по имени класса.Для этого примера я буду использовать абзац для простоты.Однако цель создания элемента с помощью JavaScript состоит в том, что я хочу создать другой элемент позже в своем коде.
В коде, который я использую, только последний элемент массива элементов будет содержать элементсозданный JavaScript.Может ли кто-нибудь объяснить, почему это происходит и что я мог сделать, чтобы решить проблему в соответствии с моим требованием?Я пытаюсь применить весь элемент внутри другого элемента (а не просто значение или свойство элемента абзаца).
Мой код:
//Creating my element:
let myElement = document.createElement("p");
/*let text = document.createTextNode("test");
myElement.appendChild(text);*/ //<-- Enable following to see text in result or check developer console for added paragraphs
//Single example:
let ele = document.getElementById("bar");
ele.appendChild(myElement);
//Not working...:
//Now class:
let eles = document.getElementsByClassName("foo");
for (i = 0; i < eles.length; i++) {
//eles[i].innerHTML = "abc";//<-- Does work (but hardcoded)?
//eles[i].innerHTML = myElement;//<-- returns "[object HTMLParagraphElement]"?
eles[i].appendChild(myElement); //<!-- Does work only for last element in array?
}
<div class="foo" id="bar">
</div>
<div class="foo">
</div>
<div class="foo">
</div>
<div class="foo">
<!-- Only this one will obtain the the paragraph element? -->
</div>
JSFiddle