dポイントプレゼントキャンペーン実施中!

下記のようなHTML構造において、それぞれのdivの子要素にボタンを追加したいとします

<body>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</body>

そこで、下記のようなjavascriptをブラウザのコンソールで実行したところ、最後のdivにしかボタンが追加されませんでしたが、何故ですか?

btn = document.createElement("input");
btn.setAttribute("type","button");
btn.value = "ボタン";

document.querySelectorAll("div").forEach( elm =>{
elm.appendChild(btn);
})

A 回答 (2件)

appendChildはノードの親を切り換えるだけなので


btnを次々に引っ越しさせることになってます(^-^;
ループ内でボタンを都度作って下さい。
    • good
    • 1
この回答へのお礼

ありがとうございます!

お礼日時:2021/11/14 22:12

elm.appendChild (btn.cloneNode (true));

    • good
    • 2
この回答へのお礼

ありがとうございます

お礼日時:2021/11/14 22:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!