※ ChatGPTを利用し、要約された質問です(原文:複数の要素へ appendchild できません)
複数の要素へappendchildできません
このQ&Aのポイント
以下のようなHTMLにおいて、複数の要素に同じ要素を追加する方法がわかりません。
スクリプトを書いてみたところ、最後の要素にしか追加されませんでした。
全てのaタグの要素に追加する方法を教えてください。
以下のような html があり、それぞれの画像リンクの後ろに <span>文章4</span>を追加したいのですが、できません。
元の html
<ol>
<li>文章1 <a href="a.jpg" ><img src="a_small.jpg" /></a></li>
<li>文章2 <a href="b.jpg"><img src="b_small.jpg" /></a></li>
</ol>
<p>文章3 <a href="c.jpg"><img src="c_small.jpg" /></a></p>
作りたい html
<ol>
<li>文章1 <a href="a.jpg" ><img src="a_small.jpg" /></a><span>文章4</span></li>
<li>文章2 <a href="b.jpg"><img src="b_small.jpg" /></a><span>文章4</span></li>
</ol>
<p>文章3 <a href="c.jpg"><img src="c_small.jpg" /></a><span>文章4</span></p>
以下のようなスクリプトを書いてみたのですが、どうしても最後の要素(この場合は3番目の画像)へしか <span>文章4</span> が追加されません。全ての a タグの要素へ追加するにはどうしたらいいのでしょうか。
window.onload = function() {
var addedSpan = document.createElement("span");
var addedTxt = document.createTextNode("文章4");
addedSpan.appendChild(addedTxt);
var imgs = document.getElementsByTagName ("a");
for (var i=0; i<imgs.length; i++) {
imgs[i].appendChild (addedSpan);
}
}
初歩的な質問でお恥ずかしいのですが、是非ご教授ください。どうぞよろしくお願いします。
お礼
まさしくこうしたかったのです。どうもありがとうございます。 変数を宣言する場所が違っていたのですね。 紹介していただいたウェブページも見ながら、もっとお勉強したいと思います。 どうもありがとうございました。