亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

AppendChild in `for` 循環或 `forEach `

AppendChild in `for` 循環或 `forEach `

繁花如伊 2023-05-19 19:53:39
我有幾個類作為single-product類名。appendChild我正在嘗試在 javascript 中使用in將按鈕添加到所有按鈕for loop。但它似乎沒有用。我不明白為什么?我正在使用querySelectorAll.let products = document.querySelectorAll('.single-products')然后我創建了一個div包含我的按鈕的元素。let button = document.createElement('div');button.innerHTML = "<a class='btn hero-btn'>Add to cart</a>";for (let i=0 ; i < products.length ; i++){document.querySelectorAll('.single-product')[i].appendChild(button.cloneNode())我也嘗試過forEach使用thisas 參數,但即使那樣也沒有用。
查看完整描述

2 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

您的程序永遠不會進入循環,并且它還會生成 ReferenceError 因為products從未定義為查找它的長度。你必須在程序進入 for 循環之前定義它。而另一件事cloneNode()只是在基礎級別創建克隆。您必須使用cloneNode(true)它來克隆它及其后代。這是您的代碼的修復:


let button = document.createElement("div");


button.innerHTML = "<a class='btn hero-btn'>Add to cart</a>";


let products = document.querySelectorAll(".single-product");


for (let i = 0; i < products.length; i++) {

  products[i].appendChild(button.cloneNode(true));

}


查看完整回答
反對 回復 2023-05-19
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

您需要調用cloneNode()withtrue來克隆它的后代/子代。

同樣首先獲取元素列表一次,然后遍歷它并附加按鈕,就像。


let button = document.createElement('div');

button.innerHTML = "<a class='btn hero-btn'>Add to cart</a>";


let productSections = document.querySelectorAll('.single-product');

for (let i=0 ; i < productSections.length ; i++){

   productSections[i].appendChild(button.cloneNode(true));

)


查看完整回答
反對 回復 2023-05-19
  • 2 回答
  • 0 關注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號