素(vanilla)のJavaScriptで
あるブロック「#wrap」の子要素に存在するすべてのID属性に文字列「-add」を追加したいのですが
最大階層が決まっていれば簡単なのですが、N階層(階層が不定である)ある場合の書き方が分かりません
ベテランのかたご教授いただけますと幸いです
例えば以下のようなhtmlがあったとして
<div id="wrap"> <div id="p1"> <div data-huga="huga"> <div class="hoge"> <div id="s5ss1"> </div> </div> </div> </div> <div id="p2"> <li id="q1"></li> <li></li> <li id="q2"> <p> <a id="rr1r"></a> </p> </li> </div> </div>
期待する結果は以下のような形です
<div id="wrap"> <div id="p1-add"> <div data-huga="huga"> <div class="hoge"> <div id="s5ss1-add"> </div> </div> </div> </div> <div id="p2-add"> <li id="q1-add"></li> <li></li> <li id="q2-add"> <p> <a id="rr1r-add"></a> </p> </li> </div> </div>
階層が一階層であれば以下のような形で出来ると思うのですが
const el = document.getElementById("wrap"); const count = el.children.length for(let i=0;i<count;++i){ if(el.children[i].hasAttribute("id")){ el.children[i].id = el.children[i].id + "-add"; } }
また、最大2階層、3階層までと決まっていればこれをネストしていけばよいだけですが
N階層の場合がさっぱり思いつきません
JavaScriptのバージョンはES6くらいの書き方ですと嬉しいです
不足情報ございましたらお教えくださいませ
ご確認よろしくお願い致します
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/06 04:27