[Edge]。→、
Node と指定の別ノードとの位置を比較し数値で返します。
Node | Node。 |
---|---|
otherNode | 比較する別ノード Node。 |
整数値。Node から見た otherNode の相対位置を表します。
Node で以下の定数プロパティがビット マスクとして定義されています。
定義されている名称 | 戻り値 | 状態 |
---|---|---|
― | ¶0 | 一致 |
DOCUMENT_POSITION_DISCONNECTED | 1 | 両方のノードが、異なる文書、または同じ文書の異なるツリーにあります。 |
DOCUMENT_POSITION_PRECEDING | 2 | otherNode は Node より、両者を含むツリーの前順深さ優先走査で前にある(祖先ノード、前にある兄弟ノード、前にある兄弟ノードの子孫ノード、祖先ノードの前にある兄弟ノードなど)か、(接続されていないのであれば)任意だが一貫した順序で、そのノードよりも前に位置します。 |
DOCUMENT_POSITION_FOLLOWING | 4 | otherNode は Node より、両者を含むツリーの前順深さ優先走査で後にある(子孫ノード、後にある兄弟ノード、後にある兄弟ノードの子孫ノード、祖先ノードの後にある兄弟ノードなど)か、(接続されていないのであれば)任意だが一貫した順序で、そのノードよりも後に位置します。 |
DOCUMENT_POSITION_CONTAINS | 8 | otherNode は Node の祖先ノードです。 |
DOCUMENT_POSITION_CONTAINED_BY | 16 | otherNode は Node の子孫ノードです。 |
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | 32 | その結果は、任意や実装固有の動作に依存し、移植性は保証されません。 |
複数の条件に適合する場合、複数のビットが設定されることがあります。
例えば、otherNode が文書中でより先にあり、かつ compareDocumentPosition() が呼び出されたノードを含んでいれば、DOCUMENT_POSITION_CONTAINS と DOCUMENT_POSITION_PRECEDING の両ビットが設定され、10(0x0A)という値になります。
var head = document.getElementsByTagName('head').item(0); if ( head.compareDocumentPosition(document.body) & Node.DOCUMENT_POSITION_FOLLOWING ) { console.log("head 要素は body 要素より前に記述されています。"); } else { console.log("head 要素は body 要素の前に配置しなくてはなりません。"); }
HTML:
<SPAN id=IdTest1>[SPAN要素1<B id=IdB>[B要素]</B>]</SPAN><BR> <SPAN id=IdTest2>[SPAN要素2]</SPAN><BR>
JavaScript:
D=IdTest1.compareDocumentPosition(IdTest2); //4。IdTest2 は IdTest1 よりも後にある。 D=IdTest1.compareDocumentPosition(IdB); //20。IdB は IdTest1 の子孫ノードで、IdTest1 よりも後にある。 D=D.toString(16); //14(16進)