DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> javascript 節點排序實現代碼
javascript 節點排序實現代碼
編輯:關於JavaScript     
在IE中我們可以利用sourceIndex,標准浏覽器我們可以用compareDocumentPosition,但對於舊一點的標准浏覽器呢?XML呢?因此我們就需要根據一個節點的屬性確定它與另一個節點的關系了。
我的思路很簡單,如果它們相同,返回0(用於去重),如果它們的父節點相同,那麼根據nextSibling確定兩者的先後順序,否則就找到其最近公共祖先與其他兩個最接近這祖先的兩個父節點(人性點說,是伯父與父親),這時不就是與父節點相同的情況嗎?!根據nextSibling確定它們的順序,它們的順序就是它們的孩子的順序(因此有一個叫李剛的爹很重要,在這個世襲制的世界上!)不過,有時最近公共祖先就是比較雙方的某一個呢,那當然是它最近了。
剩下的問題就是求最近公共祖先的問題了。我的思路也很簡單,不一定高效,畢竟大學把數學都荒廢了。不斷向上取得它們的父節點,直到最頂的HTML元素,連同最初那個節點,組成兩個數組。然後每次取數組最後的元素進行比較,如果相同就去掉它們,因為相同的都是公共祖先,不相同就往上取其中一方就行了。
下面是測試頁面與源碼:
由於使用了window.console,因此建議在firefox,IE8,chrome下查看結果。

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved