判断元素之间的包含关系contains和compareDocumentPosition详解

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,不包含

假设firstsecond的前一个兄弟元素,则

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值