右,所以我想常識是,你將要訪問很多因素,最好的辦法就是對其進行緩存,像這樣:jQuery/JavaScript緩存元素的效率?
var myEl = $('.myclass');
然後你可以訪問$(MYEL)在未來,你不需要再次搜索DOM,對嗎?好吧,讓我說我有一個相當複雜的html結構,我需要訪問很多不同的元素,如20-30。這是非常醜陋的待辦事項這種類型的30倍!
var elA = $('.myela'),
elB = $('.myelb');
等等等等,你的想法..所以有什麼「壞」在做這個樣子,繼續所有這些要素同一類,但給他們一個唯一的ID,那麼這樣做:
var myElementObject={};
$('.myelems').each(function(){
myElementObject[$(this).attr('id')] = $(this);
});
這樣,它就像我得到一個object.whateverId和那緩存的元素,所以現在我很喜歡,而無需重新查詢DOM所有的時間我可以使用它們,就是這個假設是正確的,這是一個糟糕的實踐?你們怎麼去解決它?
謝謝!
我正在用「.myelems」做什麼,在我的描述中它是普通類,但是如果$('#id')如此之快,爲什麼人們繼續關於「最佳」實踐和「總是」緩存你的元素? 這是我沒有得到的東西,我應該只是總是緩存我使用很多或不打擾的元素?它是否真的影響性能很多?我無法找到一個清晰的答案。 – neph 2011-02-16 01:37:52