国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript比較文檔位置

2024-05-06 14:18:08
字體:
來源:轉載
供稿:網友
1、DOMElement.contains(DOMNode)

這個方法起先用在 IE ,用來確定 DOM Node 是否包含在另一個 DOM Element 中。

當嘗試優化 CSS 選擇器遍歷(像:“#id1 #id2”),這個方法很有用。你可以通過 getElementById 得到元素,然后使用 .contains() 確定 #id1 實際上是否包含 #id2。

注意點:如果 DOM Node 和 DOM Element 相一致,.contains() 將返回 true ,雖然,一個元素不能包含自己。

這里有一個簡單的執行包裝,可以運行在:Internet Explorer, Firefox, Opera, and Safari。


function contains(a, b) {
    return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(arg) & 16);
}
2、NodeA.compareDocumentPosition(NodeB) 

這個方法是 DOM Level 3 specification 的一部分,允許你確定 2 個 DOM Node 之間的相互位置。這個方法比 .contains() 強大。這個方法的一個可能應用是排序 DOM Node 成一個詳細精確的順序。

使用這個方法你可以確定關于一個元素位置的一連串的信息。所有的這些信息將返回一個比特碼(Bit,比特,亦稱二進制位)。

對于那些,人們知之甚少。比特碼是將多重數據存儲為一個簡單的數字(譯者注:0 或 1)。你最終打開 / 關閉個別數目(譯者注:打開/關閉對應 0 /1),將給你一個最終的結果。

這里是從 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 瀏覽器的私有使用 

現在,這意味著一個可能的結果類似于:


<div id="a">
    <div id="b"></div>
</div>
<script>
    alert( document.getElementById("a").compareDocumentPosition(document.getElementById("b")) == 20);
</script>
一旦一個節點 A 包含另一個節點 B,包含 B(+16) 且在 B 之前(+4),則最后的結果是數字 20 。如果你查看比特發生的變化,將增加你的理解。

000100 (4) + 010000 (16) = 010100 (20)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 邯郸市| 井研县| 玉溪市| 天长市| 海口市| 喀喇沁旗| 荆门市| 金溪县| 榆社县| 长汀县| 道孚县| 云南省| 思茅市| 九龙坡区| 合作市| 绥江县| 阜南县| 施甸县| 云和县| 吴忠市| 虞城县| 渭南市| 方山县| 定南县| 紫金县| 临漳县| 即墨市| 黎平县| 柏乡县| 广河县| 醴陵市| 肥乡县| 青川县| 吉首市| 长泰县| 墨玉县| 运城市| 普洱| 大同县| 万载县| 通州区|