加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

javascript contains要领,附demo演示

发布时间:2018-10-10 10:23:09 所属栏目:创业 来源:站长网
导读: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 ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] if (window.Node && Node.prototype && !Node.prototype.contains){
Node.prototype.contains = function (arg) {
return !!(this.compareDocumentPosition(arg) & 16)
}
}

我搞出个更短的: 

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] if(!!window.find){
HTMLElement.prototype.contains = function(B){
return this.compareDocumentPosition(B) - 19 > 0
}
}


提醒:可修改儿女码再运行!

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] descendantOf: function(element, ancestor) {
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

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读