簡體   English   中英

如何將 append 多個 img-child 元素添加到一個帶有 JS 的 DOM 元素中?

[英]how to append multiple img-child elements to a DOM element with JS?

我想向 div 元素添加多個相同的 img 元素。 為什么我不能只使用 appendChild 幾次?

例如:

divelement.appendChild(imgelement);
divelement.appendChild(imgelement);
divelement.appendChild(imgelement);

將導致

<div>
  <img></img>
</div>

但我怎樣才能實現以下目標?

<div>
  <img></img>
  <img></img>
  <img></img>
</div>

imgelement需要是一個新實例。 如果你添加同一個孩子,它什么也不做。

 const divElement = document.querySelector('#target'); const imgElement = document.createElement('img'); divElement.append(imgElement); // Original reference divElement.append(imgElement); // ^ Same reference divElement.append(imgElement); // ^ Same reference
 img { width: 100px; height: 100px; background: red; }
 <div id="target"></div>

您需要為每個 append 操作創建一個新的圖像實例:

 const divElement = document.querySelector('#target'); const createImgElement = () => document.createElement('img'); divElement.append(createImgElement()); divElement.append(createImgElement()); divElement.append(createImgElement());
 img { width: 100px; height: 100px; background: red; }
 <div id="target"></div>

這種方式應該有效。

var div = document.getElementById('myId');
for(var i = 0; i < 3; i++){
      var img = document.createElement('img');
      div.appendChild(img);
}

我認為您正在附加同一個孩子 3 次。

一個可行的解決方案在這里 -

 const myParent = document.getElementById("someDiv"); const myImg1 = document.createElement("img"); myImg1.src = "https://picsum.photos/200/300"; myParent.append(myImg1); const myImg2 = document.createElement("img"); myImg2.src = "https://picsum.photos/200/300"; myParent.append(myImg2); const myImg3 = document.createElement("img"); myImg3.src = "https://picsum.photos/200/300"; myParent.append(myImg3);
 *{ margin:0; padding:0; box-sizing:border-box; } #someDiv{ width:500px; height:200px; background-color:green; margin:auto; display:flex; } img{ margin-right:10px; }
 <div id = "someDiv"> </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM