![](/img/trans.png)
[英]Javascript For loop appending child only appends first element, then throws error
[英]Appending a node multiple times using JavaScript only appends once
為什么當我運行此示例代碼時,ul列表中僅附加了一個“ A節點”? 每次必須追加時都需要創建一個新節點嗎? 注意:使用appendNode(node.cloneNode(true))
確實會多次追加。
let node = document.createElement("LI"); let textnode = document.createTextNode("A node"); node.appendChild(textnode); for (let x = 0; x < 5; x++) { document.getElementById("myList").appendChild(node); }
<ul id="myList"> </ul>
這是因為您每次都附加相同的節點-將您的所有代碼放入for
循環中,即可正常工作:
for (let x = 0; x < 5; x++) { let node = document.createElement("LI"); let textnode = document.createTextNode("A node"); node.appendChild(textnode); document.getElementById("myList").appendChild(node); }
<ul id="myList"> </ul>
或者,使用cloneNode
:
let node = document.createElement("LI"); let textnode = document.createTextNode("A node"); node.appendChild(textnode); for (let x = 0; x < 5; x++) { document.getElementById("myList").appendChild(node.cloneNode(true)); }
<ul id="myList"> </ul>
那是因為您的代碼會將相同的節點追加到列表中。 為了創建和附加多個節點,您必須確保
let node = document.createElement("LI");
, let textnode = document.createTextNode("A node");
,以及node.appendChild(textnode);
在您的for
循環內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.