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

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

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

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

相關(guān)文章

最新評(píng)論

饶阳县| 北票市| 临桂县| 焦作市| 和林格尔县| 射阳县| 鹤山市| 上蔡县| 磐石市| 本溪市| 长岭县| 龙游县| 平和县| 乳山市| 明星| 大同县| 灵石县| 舒兰市| 安国市| 湟中县| 三江| 高碑店市| 家居| 昌吉市| 平定县| 清原| 英山县| 百色市| 营山县| 宣恩县| 涞水县| 璧山县| 吉林市| 武定县| 五河县| 金山区| 思茅市| 丹东市| 丽江市| 曲阳县| 昌邑市|