回答編集履歴
1
追記
test
CHANGED
@@ -5,3 +5,12 @@
|
|
5
5
|
let elementChildren = element.cloneNode(true).children;
|
6
6
|
element.after(...elementChildren);
|
7
7
|
```
|
8
|
+
|
9
|
+
簡単にご説明すると、`.children`は要素を返さないです。`HTMLCollection`という配列っぽいものを返します。
|
10
|
+
[Element: children プロパティ - Web API | MDN](https://developer.mozilla.org/ja/docs/Web/API/Element/children)
|
11
|
+
|
12
|
+
ところが、`.after()`の引数はノードを受取ります。
|
13
|
+
[Element: after() メソッド - Web API | MDN](https://developer.mozilla.org/ja/docs/Web/API/Element/after)
|
14
|
+
なので、要素の配列っぽいものをそのまま渡してもダメです。`...`で展開するなどして渡してください。
|
15
|
+
|
16
|
+
また、ノードや要素は一つの親しか持たないです。なので、`.after()`などで何かの要素の下に挿入すると、親が変わってしまいます。簡単に言うと、移動してしまいます。なので別のメソッドで事前にクローンをつくる必要があります。
|