知名度が低いウェブ標準ひとり Advent Calendar 2021 – 22 日目
今日は compareDocumentPosition()
です。2 つのノード(HTML 要素とか)を比べてドキュメントツリー上で出現位置を比較します。
基本的な使い方
比較対象を引数にとります。
const result = node1.compareDocumentPosition(node2); console.log('先に出現?', Boolean(result & Node.DOCUMENT_POSITION_PRECEDING));
結果はビットに詰められ戻ってきます。
ビットは以下の定数を利用して &
でマスクして確認します。
Node.DOCUMENT_POSITION_DISCONNECTED
Node.DOCUMENT_POSITION_PRECEDING
Node.DOCUMENT_POSITION_FOLLOWING
Node.DOCUMENT_POSITION_CONTAINS
Node.DOCUMENT_POSITION_CONTAINED_BY
Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
ビットとかマスクとかウェブ系で出てくるの珍しいよね。
おしまい
使用目的は明確。機会があれば使おう、いつかはわからないけど。なんかこう XML を 検証するときとか?