2017-09-25 64 views
1

我不明白爲什麼我不能追加upBtn到所有的列表項。 感謝您提供的任何幫助。如何appendChild到每個列表項?

// append upBtn to all exist lis 
const upBtn = document.createElement("button"); 
upBtn.className ="up"; 
upBtn.textContent = "up"; 
const lis = document.querySelectorAll("li"); 
for (var i = 0; i < lis.length; i++) { 
    lis[i].appendChild(upBtn); 
} 
+0

能否請您創建一個小提琴證明了問題? –

+0

https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild附加一個現有的節點會移動它,您需要爲每個附加項創建一個新按鈕或克隆它。 – jmoerdyk

回答

3

問題是你試圖一遍又一遍地追加同樣的按鈕。您需要每次創建一個單獨的按鈕。

試試這個:

// append upBtn to all exist lis 
const lis = document.querySelectorAll("li"); 
for (var i = 0; i < lis.length; i++) { 
    const upBtn = document.createElement("button"); 
    upBtn.className ="up"; 
    upBtn.textContent = "up"; 
    lis[i].appendChild(upBtn); 
} 

JSBin:http://jsbin.com/ceseyadoho/edit?html,js,output

+0

非常感謝您的幫助! – sabrina

相關問題