尝试将child附加到具有相同类名的所有元素

时间:2017-06-01 21:16:00

标签: javascript html ecmascript-6

我正在尝试使用fread(&n, sizeof(int), 1, baseda); alunue = malloc(n*sizeof(alumno)); for (i = 0; i < n; i++) { fread(&m, sizeof(int), 1, baseda); alunue[i].peract = malloc(m*sizeof(periodo)); for (j = 0; j < m; j++) { fread(&o, sizeof(int), 1, baseda); alunue[i].peract[j].uniapr = malloc(sizeof(uda)); } } fread(alunue, sizeof(alumno), n, baseda); 方法将appendChild()元素添加到具有相同类名的多个document.createElement("div")元素。

我试过这种方式:

<div>

哪个没用,所以我试过了:

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

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

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

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

但由于我正在生成所有不同类型的HTML元素标记,例如[...parentObject].map(parent => parent.innerHTML = "<div class='second'></div>") ,我需要方便调用IMG, DIV, SPAN方法。

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

1 个答案:

答案 0 :(得分:5)

元素只能存在于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>