簡體   English   中英

如何在Javascript中使用DOM在HTML父標記中多次插入相同的圖像?

[英]How to insert same image multiple time in HTML parent tag with DOM in Javascript?

我希望借助Javascript在我的HTML </p>標簽中插入相同的圖像3次。 如下

<p class="image flex">
    <img
        src="images/Heart.png"
        alt="character image"
        class="images img"
    />
    <img
        src="images/Heart.png"
        alt="character image"
        class="images img"
    />
    <img
        src="images/Heart.png"
        alt="character image"
        class="images img"
    />
</p>

要在JavaScript中添加此代碼,我使用了此代碼。

const img = document.querySelector('.image');
const image = new Image();
image.src = "images/Heart.png";
image.alt = 'character img';
image.classList.add('images', 'img');

for (let i = 0; i < 3; i++) {
    img.appendChild(image);
}

這段代碼只提供這些輸出。

<p class="image flex">
    <img
        src="images/Heart.png"
        alt="character img"
        class="images img"
    />
</p>

您只創建了一次元素。 這樣你就可以在同一個父元素中將相同的元素追加三次,這基本上只會在這個上下文中浪費CPU資源。

實際上,基於MDN並感謝@araraonline指出這一點

如果給定子節點是對文檔中現有節點的引用,則appendChild()將其從當前位置移動到新位置(在將節點附加到其他節點之前,不需要從其父節點中刪除節點)。

這意味着節點不能同時位於文檔的兩個點中。 因此,如果節點已經有父節點,則首先刪除該節點,然后將其附加到新位置。

你應該做的是在循環內創建元素。

const img = document.querySelector('.image');

for (let i = 0; i < 3; i++) {
  const image = new Image()
  image.src = "images/Heart.png";
  image.alt = 'character img';
  image.classList.add('images', 'img');
  img.appendChild(image);
}

暫無
暫無

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

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