在实际开发中,经常需要知道某个节点是不是另一个节点的后代。IE 为此率先引入了contains()
方法,以便不通过在DOM 文档树中查找即可获得这个信息。调用contains()方法的应该是祖先节点,
也就是搜索开始的节点,这个方法接收一个参数,即要检测的后代节点。如果被检测的节点是后代节点,
回true。支持contains()方法的浏览器有IE、Firefox 9+、Safari、Opera 和Chrome。
使用DOM Level 3 compareDocumentPosition()也能够确定节点间的关系。支持这个方法的浏
览器有IE9+、Firefox、Safari、Opera 9.5+和Chrome。如前所述,这个方法用于确定两个节点间的关系,
返回一个表示该关系的位掩码(bitmask)。下表列出了这个位掩码的值。
方法,以便不通过在DOM 文档树中查找即可获得这个信息。调用contains()方法的应该是祖先节点,
也就是搜索开始的节点,这个方法接收一个参数,即要检测的后代节点。如果被检测的节点是后代节点,
该方法返回true;否则,返回false。以下是一个例子:
alert(document.documentElement.contains(document.body)); //true
这个例子测试了<body>元素是不是<html>元素的后代,在格式正确的HTML 页面中,以上代码返
回true。支持contains()方法的浏览器有IE、Firefox 9+、Safari、Opera 和Chrome。
使用DOM Level 3 compareDocumentPosition()也能够确定节点间的关系。支持这个方法的浏
览器有IE9+、Firefox、Safari、Opera 9.5+和Chrome。如前所述,这个方法用于确定两个节点间的关系,
返回一个表示该关系的位掩码(bitmask)。下表列出了这个位掩码的值。
为模仿contains()方法