XML DOM compareDocumentPosition() 方法
定义和用法
compareDocumentPosition() 方法比较 DOM 层次结构(文档)中两个节点的位置。
语法
nodeObject.compareDocumentPosition(node)
参数
| 参数 | 描述 |
|---|---|
| node | 必需。Node 对象。规定与当前节点进行比较的节点。 |
技术细节
| DOM 版本: | Core Level 3 Node Object |
|---|---|
| 返回值: |
数字,表示两个节点相对位置的位置。可能的返回值为:
注意:返回值也可以是值的组合。例如。返回值 20 表示指定节点被包含在当前节点 (16) 中,并且指定节点跟随当前节点 (4) 。 |
实例
下面的代码将 "books.xml" 加载到 xmlDoc 中,,并比较 DOM 层次结构中两个节点(第一个和第三个 <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 及更早版本不支持此方法。