2011-09-21 68 views
0

我有一個頁面上有很多div,我需要實現一些JavaScript函數。有沒有辦法告訴瀏覽器通過例如id排序所有div,以便我可以快速找到一個元素。我通常不知道瀏覽器如何處理元素的搜索,是否有一些排序或不在主流瀏覽器firefox,chrome ,即?元素如何獲得索引?在html中元素的最快搜索

+0

聽起來好像你需要實現jQuery。 –

回答

0

瀏覽器創建一個名爲一樣DOM(文檔對象模型)結構的樹,例如根目錄是html標籤,然後是孩子,他們孩子的孩子等等。

有一些函數可以讓你訪問DOM並找到所需的元素。但是這是在瀏覽器的內部實現中完成的。您無法改變它如何處理頁面元素,只需使用瀏覽器的API來定位元素。

+0

其實我的意思是排序他們,使搜索更快,而不是索引我現在糾正它 – TasostheGreat

+0

取決於處理的複雜性,它可能是最快的只需使用瀏覽器的API定位元素即可。但是,如果你需要更多的東西,你應該用瀏覽器返回的元素來準備你自己的結構,並從這一點開始處理你的結構。這會增加開銷,但如果您對排序的元素進行了大量處理,則可能會變得更快。 –

+0

當你說api你的意思是JavaScript? – TasostheGreat

2

我覺得jQuery將幫助你在這種情況下...

或簡單的JavaScript就可以的getElementById,或的getElementsByTagName

+0

其實我的意思是排序他們,以便搜索更快,而不是索引我現在糾正它 – TasostheGreat

2

每個瀏覽器都已經在ID和類上使用了一個這樣的索引,以用於例如css。

您不應該擔心索引DOM,它已經完成並可以使用。

如果你想掛在元素上的事件,只是這樣做。通過使用'document.getElementById(id)或document.getElementsByClassName(class)(最後一個可能遇到IE問題)

+0

實際上我的意思是對它們進行排序以便搜索更快,而不是索引我現在糾正它 – TasostheGreat

+0

您已經對所有答案進行了相同的回覆。對元素進行排序*不會導致更快的搜索,瀏覽器已經實現了DOM API並以最快的方式查找元素。在HTML中排列元素的順序不會提高速度。 – Alex