在很多场景下,要判断一个元素是不是包含另一个元素,总结了一下,有下列的方法:
一,遍历节点树,这个方法是最容易的,也没有什么兼容性问题。在“mouseenter和mouseleave”这篇日志中有演示,可以看一下。
二,对于IE浏览器,DOM元素有个contains的方法可以判断包含关系。比如div1.contains(div2),如果返回的结果为true就说明div1包含了div2,反之亦然。
三,DOM3的Node.compareDocumentPosition方法。
(div1.compareDocumentPosition(div2) & 0×10) === 0×10如果为true的话,说明div1包含div2。
详细的文档见:https://developer.mozilla.org/en/DOM/Node.compareDocumentPosition