javascriptcontains和compareDocumentPosition方法來確定是否HTML節(jié)點間的關系_javascript技巧
來源:懂視網(wǎng)
責編:小采
時間:2020-11-27 20:47:07
javascriptcontains和compareDocumentPosition方法來確定是否HTML節(jié)點間的關系_javascript技巧
javascriptcontains和compareDocumentPosition方法來確定是否HTML節(jié)點間的關系_javascript技巧:從那起,我已經(jīng)對這些方法做了大量的研究,并且已經(jīng)在很多場合使用他們。在很多任務中,他們被證明是非常有用的(特別關于結構的抽象 DOM 選擇器)。 1、DOMElement.contains(DOMNode) 這個方法起先用在 IE ,用來確定 DOM Node 是否包含在另一個
導讀javascriptcontains和compareDocumentPosition方法來確定是否HTML節(jié)點間的關系_javascript技巧:從那起,我已經(jīng)對這些方法做了大量的研究,并且已經(jīng)在很多場合使用他們。在很多任務中,他們被證明是非常有用的(特別關于結構的抽象 DOM 選擇器)。 1、DOMElement.contains(DOMNode) 這個方法起先用在 IE ,用來確定 DOM Node 是否包含在另一個

從那起,我已經(jīng)對這些方法做了大量的研究,并且已經(jīng)在很多場合使用他們。在很多任務中,他們被證明是非常有用的(特別關于結構的抽象 DOM 選擇器)。
1、DOMElement.contains(DOMNode)
這個方法起先用在 IE ,用來確定 DOM Node 是否包含在另一個 DOM Element 中。
當嘗試優(yōu)化 CSS 選擇器遍歷(像:“#id1 #id2”),這個方法很有用。你可以通過 getElementById 得到元素,然后使用 .contains() 確定 #id1 實際上是否包含 #id2。
注意點:如果 DOM Node 和 DOM Element 相一致,.contains() 將返回 true ,雖然,一個元素不能包含自己。
這里有一個簡單的執(zhí)行包裝,可以運行在: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,比特,亦稱二進制位)。
對于那些,人們知之甚少。比特碼是將多重數(shù)據(jù)存儲為一個簡單的數(shù)字(譯者注:0 或 1)。你最終打開 / 關閉個別數(shù)目(譯者注:打開/關閉對應 0 /1),將給你一個最終的結果。
這里是從 NodeA.compareDocumentPosition(NodeB) 返回的結果,包含你可以得到的信息。
Bits Number Meaning
000 0 元素一致
001 1 節(jié)點在不同的文檔(或者一個在文檔之外)
010 2 節(jié)點 B 在節(jié)點 A 之前
100 4 節(jié)點 A 在節(jié)點 B 之前
000 8 節(jié)點 B 包含節(jié)點 A
000 16 節(jié)點 A 包含節(jié)點 B
000 32 瀏覽器的私有使用
現(xiàn)在,這意味著一個可能的結果類似于:
代碼如下:
聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
javascriptcontains和compareDocumentPosition方法來確定是否HTML節(jié)點間的關系_javascript技巧
javascriptcontains和compareDocumentPosition方法來確定是否HTML節(jié)點間的關系_javascript技巧:從那起,我已經(jīng)對這些方法做了大量的研究,并且已經(jīng)在很多場合使用他們。在很多任務中,他們被證明是非常有用的(特別關于結構的抽象 DOM 選擇器)。 1、DOMElement.contains(DOMNode) 這個方法起先用在 IE ,用來確定 DOM Node 是否包含在另一個