XML DOM compareDocumentPosition() 方法
❮ Node 对象
示例
以下代码片段将 "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 | 节点对象 | 必需。指定要与当前节点进行比较的节点。 |
返回值
类型 | 描述 |
---|---|
Number | 一个数字,表示两个节点之间的相对位置。可能返回值如下: 1 - 无关系,两个节点不属于同一文档。 2 - 指定的节点在当前节点之前。 4 - 指定的节点在当前节点之后。 8 - 指定的节点包含当前节点。 16 - 指定的节点被当前节点包含。 32 - 指定节点和当前节点没有共同的容器节点,或者两个节点是同一节点的不同属性。 注意:返回值也可能是值的组合。例如,返回值为 20 表示指定的节点被当前节点包含 (16) 且指定的节点在当前节点之后 (4)。 |
技术详情
DOM 版本 | Core Level 3 节点对象 |
---|
❮ Node 对象