2010-05-28 60 views

回答

4

http://api.jquery.com/size/

var elementCount = $('*').size(); 

雖然這可能是更多你想要什麼:

var elementCount = $('body').find('*').size() 
0
var elementCount = $('*').length; 

這並不真的有很多工作要做,jQuery的,除了因爲它是一種方便的方法來得到答案。

3
var n= 0; 
for (var i in jQuery.cache) 
    n++; 

現在n持有元素的jQuery已經 '感動'(添加數據,如數量事件處理程序)。

此前,這曾經是一個很大的問題,因爲它會'觸摸'每個元素,即使是檢查的數據。這個不愉快在jQuery 1.4中修復。

至於清理內容,是的,你可以使用innerHTML= ''刪除所有的內容,而不給jQuery有機會分離它的數據非常緩慢。如果你知道這個元素中沒有'被觸動'的元素,那麼這是一個勝利,否則這是一個潛在的內存泄漏,直到頁面被重新加載,因爲未使用的數據仍然存在。

使用live()/delegate()事件綁定可避免將數據添加到其目標元素,這可以讓您更自由地使用此快捷方式。但是,如果你有很多要綁定的事件,並且它們不是很容易匹配的選擇器,這可能會導致事件處理變慢。

(因爲沒有瀏覽器的原生加速樣querySelectorAll所比對的代表團需要做一個特定選擇的元素,這是提出了選擇器,API等級2)

+0

+1 - 我想知道有關。我知道jQuery向元素添加了一個序列號,但不知道jQuery引用它們的位置。 – user113716 2010-05-28 14:22:38

+0

謝謝,非常有幫助。 – Cheeso 2010-05-28 14:50:26

相關問題