欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

jquery中的 jquery.contains(a,b)

发布时间:2023/12/19 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 jquery中的 jquery.contains(a,b) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

 jquery.contains(a,b) 判断元素 a中是否包含 b 元素:

源码:

contains = isNative(docElem.contains) || docElem.compareDocumentPosition ?function( a, b ) {var adown = a.nodeType === 9 ? a.documentElement : a,bup = b && b.parentNode;return a === bup || !!( bup && bup.nodeType === 1 && (adown.contains ?adown.contains( bup ) :a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16));} :function( a, b ) {if ( b ) {while ( (b = b.parentNode) ) {if ( b === a ) {return true;}}}return false;};

isNative:

rnative = /^[^{]+\{\s*\[native code/,function isNative( fn ) {return rnative.test( fn + "" ); }

重点解释:

a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16

IE中是使用的 adown.contains( bup )来检验。 NodeA.compareDocumentPosition(NodeB) 返回的结果,包含你可以得到的信息。

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             浏览器的私有使用

 

a.compareDocumentPosition( bup )的值只有是 16时,与 16进行 & 运算才为真,其它的值与 16 进行 & 运算 都是 0.

转载于:https://www.cnblogs.com/huaan011/p/7153836.html

总结

以上是生活随笔为你收集整理的jquery中的 jquery.contains(a,b)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。