javascript contains方法,附demo演示
发布时间:2018-10-08 14:22:10 所属栏目:模式 来源:站长网
导读:IE有许多好用的方法,后来都被其他浏览器抄袭了,比如这个contains方法。如果A元素包含B元素,则返回true,否则false。唯一不支持这个方法的是IE的死对头firefox。 !doctype htmltitledom contains 方法 by 司徒正美/titlemeta charset=utf-8/meta name=ke
IE有许多好用的方法,后来都被其他浏览器抄袭了,比如这个contains方法。如果A元素包含B元素,则返回true,否则false。唯一不支持这个方法的是IE的死对头firefox。
不过火狐支持compareDocumentPosition() 方法,这是W3C制定的方法,标准浏览器都支持,不过实用性性很差,因此没有什么人用,推广不开来。它的使用形式与contains差不多,但返回的不是一个布尔值,而是一个很奇怪的数值,它是通过如下方式累加计算出来的:
PPK给出如下解决方法。 Copy to Clipboard引用的内容:[www.veryhuo.com] if (window.Node && Node.prototype && !Node.prototype.contains){Node.prototype.contains = function (arg) { return !!(this.compareDocumentPosition(arg) & 16) } } 我搞出个更短的: Copy to Clipboard引用的内容:[www.veryhuo.com] if(!!window.find){HTMLElement.prototype.contains = function(B){ return this.compareDocumentPosition(B) - 19 > 0 } }
if (element.compareDocumentPosition) return (element.compareDocumentPosition(ancestor) & 8) === 8; if (ancestor.contains) return ancestor.contains(element) && ancestor !== element; while (element = element.parentNode) if (element == ancestor) return true; return false; }, 作者:Ruby's Louvre 出处:http://www.cnblogs.com/rubylouvre (编辑:广州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |