作家
登录

js contains方法实现代码

作者: 来源:www.28hudong.com 2013-03-30 01:01:34 阅读 我要评论

为了兼容IE和FF我们不得不用以下方法: dom contains 方法 by 司徒正美 contains方法 contains方法 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 不过火狐支持compareDocumentPosition() 方法,这是W3C制定的方法,标准浏览器都支持,不过实用性性很差,因此没有什么人用,推广不开来。它的使用形式与contains差不多,但返回的不是一个布尔值,而是一个很奇怪的数值,它是通过如下方式累加计算出来的: Bits Number Meaning 000000 0 元素一致 000001 1 节点在不同的文档(或者一个在文档之外) 000010 2 节点 B 在节点 A 之前 000100 4 节点 A 在节点 B 之前 001000 8 节点 B 包含节点 A 010000 16 节点 A 包含节点 B 100000 32 浏览器的私有使用 dom contains 方法 by 司徒正美 compareDocumentPosition方法 本例子请在标准浏览器中运行。 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] PPK给出如下解决方法。 复制代码 代码如下: if (window.Node && Node.prototype && !Node.prototype.contains){ Node.prototype.contains = function (arg) { return !!(this.compareDocumentPosition(arg) & 16) } } 我搞出个更短的: 复制代码 代码如下: if(!!window.find){ HTMLElement.prototype.contains = function(B){ return this.compareDocumentPosition(B) - 19 > 0 } } dom contains 方法 by 司徒正美 contains方法 contains方法 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 复制代码 代码如下: //2011.9.24 by 司徒正美 var contains = function(root, el) { if (root.compareDocumentPosition) return root === el || !!(root.compareDocumentPosition(el) & 16); if (root.contains && el.nodeType === 1){ return root.contains(el) && root !== el; } while ((el = el.parentNode)) if (el === root) return true; return false; }

  推荐阅读

  与jquery serializeArray()一起使用的函数,主要来方便提交表单

.serializeArray() 序列化表格元素 (类似 '.serialize()' 方法) 返回 JSON 数据结构数据。(摘自jquery文档)。 有以下一个表单窗口,代码: 复制代码 代码如下: <form action="" method="post" id="tf"> <table wid>>>详细阅读


本文标题:js contains方法实现代码

地址:http://www.17bianji.com/kaifa2/JS/24983.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)