JavaScriptで要素が同じか比較する関数があったのでメモ
結論
const elm = document.body,
target = new DOMParser().parseFromString(document.body.outerHTML, "text/html").head
elm.isEqualNode(target) // => true
つまずき
==
や===
で比較すると同じオブジェクト以外trueにならない。
たぶんSymbol
あたりの関係? (調べてない)
そしてMDNを見るとそれっぽいのを発見
https://developer.mozilla.org/ja/docs/Web/API/Node/isEqualNode
概要
ふたつのノードが同一ノードの場合は true を、異なる場合は false を返します。
で、試して見るとできた。
調べてもなかなか出てこなかった。。。
わかったこと
記事を書いている時にhead.outerHTML
はスタイルを展開しちゃうということがわかった。
そのままを手に入れたいときはどうすんだろ。