2
我想知道使用document.getElementById()n多少次或使用document.getElementsByTagName()並循環遍歷結果尋找特定的元素ID?Javascript效率問題:多個getElementById()vs getElementsByTagName()和循環結果
我想知道使用document.getElementById()n多少次或使用document.getElementsByTagName()並循環遍歷結果尋找特定的元素ID?Javascript效率問題:多個getElementById()vs getElementsByTagName()和循環結果
這一切都取決於。你有多少個具有給定ID的元素?多少個標籤名稱相同的元素?
例如,如果你想用的ID 1和3的元素,你必須:
<ul>
<li id="1">1</li>
<li id="2">2</li>
<li id="3">3</li>
<!-- Followed by 10,000 more li tags -->
</ul>
你會更好調用getElementById()
兩次。但是,如果你想要除ID15之外的所有東西,那麼你最好做一下清單並檢查ID。
另一種替代方法是將某個類添加到要選擇的特定元素。然後,您可以按課程選擇(可能與JQuery class selector),這將全面提高您的表現。
請記住,Javascript的性能差異很大between browsers甚至在versions of browsers之間。最好對目標瀏覽器進行一些測試。
謝謝你的回覆萊昂姆。有5個特定的ID,但無法告訴頁面上可能有多少元素。我要測試一下,再次感謝。 – Likescheese 2009-10-01 15:57:22
在5個元素的情況下,這並不重要。一般來說,由於getElementById經常被使用,所以瀏覽器對其進行了最優化。 – Nickolay 2009-10-12 06:44:23