javascript - 尝试将子项附加到具有相同类名的所有元素

标签 javascript html ecmascript-6

我正在尝试使用 appendChild()添加 document.createElement("div") 的方法元素到多个 <div>具有相同类名的元素。

我试过这种方式:

const childElement = document.createElement("div");
childElement.className = "second";
const parentObject = document.getElementsByClassName("first");

[...parentObject].map(parent => parent.appendChild(childElement))

哪个没有用,所以我尝试了:

for(let i = 0; i < parentObject.length; i++){
  parentObject[i].appendChild(childElement);
}

唯一可行的方法是我自己编写 html 元素,然后将其添加到每个父元素的 innerHTML 中:

[...parentObject].map(parent => parent.innerHTML = "<div class='second'></div>")

但是因为我生成了所有不同类型的 HTML 元素标签,比如 IMG, DIV, SPAN我需要方便地调用 createElement()方法。

有没有人有这方面的经验?

最佳答案

一个元素只能存在于 DOM 中的一个位置。您需要做的是创建一个新元素以附加到每个父元素:

const parentObject = document.getElementsByClassName('first');

[...parentObject].forEach((parent, i) => {
  const childElement = document.createElement('div');
  childElement.className = 'second';
  childElement.innerHTML = `second ${i}`;
  parent.appendChild(childElement)
});
div { padding: 5px; }
.first { background-color: pink; display: inline-block; }
.second { background-color: lightblue; }
<div class="first">first</div>
<div class="first">first</div>
<div class="first">first</div>
<div class="first">first</div>

关于javascript - 尝试将子项附加到具有相同类名的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44317204/

相关文章:

javascript - 用于增加文本框中日期的按钮

javascript - IE 6、7 和 8 z-index

Javascript更新对象属性值

javascript - 我应该如何在函数中使用 Promise 来确保返回类型正确

javascript focus() 方法改变值

javascript - jQuery 函数链接/嵌套的代码约定

javascript - 允许模块与 AMD/CommonJs 或脚本标签一起工作的包装器?

PHP:HTML 属性编码/JavaScript 解码

javascript - 我可以在 ALTER 查询中使用问号吗?

javascript - 箭头函数和括号