回答編集履歴

1

回答を追加

2018/03/14 07:17

投稿

defghi1977
defghi1977

スコア4756

test CHANGED
@@ -31,3 +31,41 @@
31
31
 
32
32
 
33
33
  基準となるノード(ここでは`btn-icon`クラスのノード)を基準に後続のノードを取得し, ノードがありかつそのノードがテキストノードの場合に新たに挿入する`div`要素にその中身をコピーします.
34
+
35
+
36
+
37
+ ---
38
+
39
+ 対象が複数あるならループで回すだけですよ.
40
+
41
+ ```JavaScript
42
+
43
+ {
44
+
45
+ const btns = document.querySelectorAll(".btn-in>.btn-icon");
46
+
47
+ for(let i = 0, len = btns.length; i < len; i++){
48
+
49
+ const btn = btns[i];
50
+
51
+ const div = document.createElement("div");
52
+
53
+ div.classList.add("btn-text");
54
+
55
+ let node;
56
+
57
+ while(node = btn.nextSibling, node && node.nodeType == Node.TEXT_NODE){
58
+
59
+ div.textContent += node.nodeValue;
60
+
61
+ node.remove();
62
+
63
+ }
64
+
65
+ btn.parentNode.insertBefore(div, btn.nextElementSibling);
66
+
67
+ }
68
+
69
+ }
70
+
71
+ ```