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。
定义和用法
The compareDocumentPosition() 方法比较DOM层次结构(文档)中两个节点的位置。
浏览器支持
所有主要浏览器都支持 compareDocumentPosition() 方法。
注释: Internet Explorer 9及更早版本不支持此方法。
语法
nodeObject.compareDocumentPosition(node)
参数
参数 | 类型 | 描述 |
---|---|---|
node | Node object | 必要的。指定要与当前节点进行比较的节点 |
返回值
类型 | 描述 |
---|---|
Number | 表示两个节点相对位置的数字。可能的返回值为:
1 - 没有关系,两个节点不属于同一文档。 2 - 指定的节点位于当前节点之前。 4 - 指定的节点位于当前节点之后。 8 - 指定的节点包含当前节点。 16 - 指定的节点包含在当前节点中。 32 - 指定节点和当前节点没有公共容器节点,或者这两个节点是同一节点的不同属性。 注释: 返回值也可以是值的组合。例如,返回值20表示指定节点包含在当前节点(16)中,并且指定节点跟随当前节点(4)。 |
技术细节
DOM 版本 | Core Level 3 Node Object |
---|
❮ Node 节点对象