最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript 節(jié)點排序?qū)崿F(xiàn)代碼

 更新時間:2011年01月31日 18:03:54   作者:  
為了讓自定義選擇選擇出的節(jié)點集合盡可能接近原生API選出的結(jié)果,我們往往要對結(jié)果集進(jìn)行排序,此順序當(dāng)然是從上到下,從左到右的DOM樹順序。
在IE中我們可以利用sourceIndex,標(biāo)準(zhǔn)瀏覽器我們可以用compareDocumentPosition,但對于舊一點的標(biāo)準(zhǔn)瀏覽器呢?XML呢?因此我們就需要根據(jù)一個節(jié)點的屬性確定它與另一個節(jié)點的關(guān)系了。
我的思路很簡單,如果它們相同,返回0(用于去重),如果它們的父節(jié)點相同,那么根據(jù)nextSibling確定兩者的先后順序,否則就找到其最近公共祖先與其他兩個最接近這祖先的兩個父節(jié)點(人性點說,是伯父與父親),這時不就是與父節(jié)點相同的情況嗎?!根據(jù)nextSibling確定它們的順序,它們的順序就是它們的孩子的順序(因此有一個叫李剛的爹很重要,在這個世襲制的世界上?。┎贿^,有時最近公共祖先就是比較雙方的某一個呢,那當(dāng)然是它最近了。
剩下的問題就是求最近公共祖先的問題了。我的思路也很簡單,不一定高效,畢竟大學(xué)把數(shù)學(xué)都荒廢了。不斷向上取得它們的父節(jié)點,直到最頂?shù)腍TML元素,連同最初那個節(jié)點,組成兩個數(shù)組。然后每次取數(shù)組最后的元素進(jìn)行比較,如果相同就去掉它們,因為相同的都是公共祖先,不相同就往上取其中一方就行了。
下面是測試頁面與源碼:
由于使用了window.console,因此建議在firefox,IE8,chrome下查看結(jié)果。

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

相關(guān)文章

最新評論

建湖县| 永善县| 固安县| 东辽县| 山阴县| 庆元县| 伊吾县| 平远县| 土默特左旗| 大埔区| 太康县| 张家川| 巨鹿县| 崇阳县| 志丹县| 吴堡县| 芦溪县| 普洱| 措勤县| 淳安县| 泰和县| 龙陵县| 平昌县| 嘉义县| 兴和县| 张北县| 定西市| 岑溪市| 甘泉县| 无棣县| 滦南县| 宜宾县| 维西| 平塘县| 东至县| 禄劝| 钟山县| 元谋县| 孙吴县| 白银市| 济宁市|