XML DOM compareDocumentPosition() メソッド
定義と用法
compareDocumentPosition()
DOM 層層構造(ドキュメント)内の二つのノードの位置を比較します。
構文
nodeObject.compareDocumentPosition(node)
パラメータ
パラメータ | 説明 |
---|---|
node | 必須。Nodeオブジェクト。比較するノードを指定します。 |
技術的詳細
DOMバージョン: | Core Level 3 Node Object |
---|---|
返り値: |
数字で、2つのノードの相対的な位置を示します。可能な返り値は:
注意:返り値も値の組み合わせで表示されることがあります。例えば、返り値20は指定されたノードが現在のノード(16)に含まれており、指定されたノードが現在のノード(4)の後に続いていることを示します。 |
例
以下のコードは "books.xml" を xmlDoc にロードし、DOM階層構造の2つのノード(最初と3番目の <book> 要素)の位置を比較します:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); function myFunction(xml) { var xmlDoc = xml.responseXML; var x = xmlDoc.getElementsByTagName('book')[0]; var y = xmlDoc.getElementsByTagName('book')[2]; document.getElementById("demo").innerHTML = x.compareDocumentPosition(y); }
ほとんどのブラウザは空白や新しい行をテキストノードと見なしますが、IE 9およびそれ以前のバージョンでは見なしません。したがって、上記の例では、ほとんどのブラウザが4を返しますが、IE 9およびそれ以前のバージョンは2を返します。
ブラウザサポート
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
サポート | サポート | サポート | サポート | サポート |
すべての主要ブラウザは compareDocumentPosition() メソッドをサポートしています。
注記:Internet Explorer 9およびそれ以前のバージョンではこのメソッドをサポートしていません。