在ie中使用contains可以很简单的判断一个元素是否包含另一个元素
在firefox中,则是使用compareDocumentPosition方法:
不过相比于ie中contains直接返回true或FALSE,compareDocumentPostion返回的是数字
该数字用来判断一个节点是另一个节点的后代(10-01010)还是祖先(20-10100),在前面(4-00100)还是后面(2-00010),同一节点为0(00000)
五位的二进制的各个位置表示不同的值:
第五位:祖先
第四位:后代
第三位:前面
第二位:后面
第一位:本身
相匹配的值为1,反之为0
这样对应五种情况,值分别是:10100(20), 01010(10), 00100(4), 00010(2), 00000(0)
在上面这段代码的判断中,用到了按位与运算——’&’,
则是因为16的二进制为:10000,这样的话,他只有与20(10100)进行按位与运算,结果才不为0000