标签:
contains()方法:
contains()方法检查一个节点是不是另一个节点的后代。如body是html的后代,那么docuement.documentElement.contains(document.dody)就会返回true;在DOM3中有个函数也可以实现这个功能,或者说更全面,那就是compareDocumentPosition这个函数,它返回一个码,我们可以用它与16作按位与运算,再强制转换成布尔型的。
下面是一个兼容通用的contains方法。
function contains(refNode, otherNode) { if (typeof refNode.contains == "function" && (!client.engine.webkit || client.engine.webkit >= 522)) { return refNode.contains(otherNode); } else if (typeof refNode.compareDocumentPosition == "function") { return !!(refNode.compareDocumentPosition(otherNode) & 16); } else { var node = otherNode.parentNode; do { if (node === refNode) { return true; } else { node = node.parentNode; } } while (node !== null); return false; } }
标签:
原文地址:http://www.cnblogs.com/vebuqi/p/4246908.html