在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ DOM中的compareDocumentPostion()和contains()

DOM中的compareDocumentPostion()和contains()的疑惑

首先,
書中說:要模仿contains()方法則要關注掩碼16,這個是因為contains()方法就是檢測參考節(jié)點是否包含指定節(jié)點。而掩碼16正是代表了節(jié)點的包含關系,因此要關注掩碼16。

問題:
1.為何這里的說“對compareDocumentPosition()的結(jié)果執(zhí)行按位與,以確定參考節(jié)點是否包含指定節(jié)點”?直接判斷該方法返回的掩碼數(shù)值不就OK了嗎,為何要進行的這個按位與操作,也就是最下面的代碼段:
alert(!!(result &16))

clipboard.png

回答
編輯回答
逗婦乳

沒人回答我……
其實compareDocumentPostion()返回的是20。因為HTML是包含BODY并且BODY是在HTML的節(jié)點后,因此掩碼的計算是:16+4=20。至于為什么要使用按位與來做判斷其實是: 20 & 16 = 10100 & 10000=10000=16。所以使用按位與就可以判斷得出掩碼是16。目的就是為了排除其他掩碼對16掩碼的影響。僅此。
還有一點就是:既然是要檢測是否是參考節(jié)點的后代,返回true時必定是等于20的。
因為“給定節(jié)點都被參考節(jié)點包含了,表明給定節(jié)點是參考節(jié)點的后代,此時掩碼=16,并且給定節(jié)點必定是在參考節(jié)點后,此時掩碼=4”。
最后就是,可以不用按位與操作,判定數(shù)值也可以,但判定的數(shù)值是==20,而不是單純的16。

2017年10月29日 08:40