contains
document.documentElement.contains(document.body); //true
compareDocumentPosition
a.compareDocumentPosition(b)
返回数字,含义如下:
- 0 :
a===b
- 1 : 不包含,不属于同一个文档
- 2 :
a
位于b
之后 - 4 :
a
位于b
之前 - 8 :
b
包含a
- 16:
a
包含b
var html = document.documentElement;
var body = document.body;
html.compareDocumentPosition(body); //返回20,即4+16,因为html在body之前且html包含body
body.compareDocumentPosition(html); //返回10,即2+8
html.compareDocumentPosition(html); //返回0,不包含
假设first
是second
的前一个兄弟元素,则
first.compareDocumentPosition(second);
返回4。
假设HTML
为<body class="class" id="id"></body>
var attr = document.body.attributes;
//attr[0]返回class="class"
//attr[1]返回id="id"
attr[1].compareDocumentPosition(attr[0]);//返回34,因为id在class之后,因此有2,且是同一个元素的不同属性,则为32,因此2+32即34;