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