我有ID爲#wrapper
的div和所有元素都在裏面。 我做jQuery緩存選擇器
var $wrapper = $('#wrapper');
現在任何時候我想做出選擇或引用一個元素的緩存封裝,我做
$wrapper.find('#whatever').click(....
通過這樣做,我避免再次與jQuery對象包裝,所以我將來所做的任何選擇都將基於緩存的$wrapper
。但另一方面,當我使用find()
緩存$ wrapper,我知道它會搜索#wrapper
內的所有元素。我的問題是更好,使用緩存變量一起查找然後發出點擊事件,或者只是簡單地做$('#whatever').click(..
whatever
可以是類或id。
找不到()也很貴。我做了性能測試,看起來非緩存版本更快。 http://jsperf.com/testttttt – Pinkie 2011-05-01 01:57:44
我認爲你的測試有問題,因爲你正在執行'var $ wrapper = $(「wrapper」)'''$ wrapper.find(「#editable」)。hide() '每次迭代。 – CarlosZ 2011-05-01 02:03:15
這正是我的問題。因爲它會引用具有指定的id或class的所有元素,所以找不到與緩存變量一起使用的好東西。 – Pinkie 2011-05-01 02:07:59