XML DOM compareDocumentPosition() 方法
❮ 节点对象
示例
以下代码片段将 "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);
}
上述代码的输出将是
4
亲自尝试 »
大多数浏览器会将空空格或换行符视为文本节点,而 IE 9 及更早版本则不会。因此,在上面的示例中,大多数浏览器会输出 4,而 IE 9 及更早版本会输出 2。
定义和用法
compareDocumentPosition() 方法比较 DOM 层次结构(文档)中两个节点的位置。
浏览器支持
compareDocumentPosition() 方法在所有主流浏览器中都受支持。
注意: Internet Explorer 9 及更早版本不支持此方法。
语法
nodeObject.compareDocumentPosition(node)
参数
参数 | 类型 | 描述 |
---|---|---|
node | 节点对象 | 必需。指定要与当前节点比较的节点。 |
返回值
类型 | 描述 |
---|---|
数字 | 一个数字,表示两个节点相互定位的位置。可能的返回值为: 1 - 无关系,两个节点不属于同一个文档。 2 - 指定的节点在当前节点之前。 4 - 指定的节点在当前节点之后。 8 - 指定的节点包含当前节点。 16 - 指定的节点被当前节点包含。 32 - 指定的节点和当前节点没有共同的容器节点,或者两个节点是同一个节点的不同属性。 注意:返回值也可能是值的组合。例如,返回值 20 表示指定的节点被当前节点包含 (16) 并且指定的节点在当前节点之后 (4)。 |
技术细节
DOM 版本 | 核心级别 3 节点对象 |
---|
❮ 节点对象