以下三個樣本和哪一個更好(如果有的話)之間的區別是什麼?這些jQuery選擇器有什麼區別嗎?
$("#x span").hide();
$("#x").find("span").hide();
$("span", "#x").hide();
以下三個樣本和哪一個更好(如果有的話)之間的區別是什麼?這些jQuery選擇器有什麼區別嗎?
$("#x span").hide();
$("#x").find("span").hide();
$("span", "#x").hide();
它們都會匹配相同的東西; 最好的一個基於上下文。除非我有一個指向現有集合的變量,否則我會使用第一個示例。那麼我顯然會使用find()
方法。
這些舊的$(selector, context)
(你的第三個例子)現在看起來不多,可能是因爲它在後臺翻譯爲$(context).find(selector)
(並且它更容易閱讀)。
在nettuts的博客文章中,我看到了兩個術語:「上下文」和「範圍」。他們在這裏嗎?如果是的話,那麼我會感激他們不同的例子。 。 。感謝:-) – seoul 2011-05-23 05:38:37
@首爾我不確定100%你的意思。我在英文術語的意思中使用了* context *,並沒有在我的答案中使用* scope *。 – alex 2011-05-23 05:43:27
轉到此鏈接 - http://net.tutsplus.com/tutorials/javascript-ajax/how-jquery-beginners-can-test-and-improve-their-code/並閱讀james padolsey的評論(cmnt時間: 2010年4月30日上午2:01)和siddarth回覆關於該帖子#3的同一主題。 – seoul 2011-05-23 06:13:22
這些都做出同樣的選擇,但是在首先進行比過去兩年其執行差不多的更差,請參見:
http://jsperf.com/jquery-selector-perf-right-to-left/48
在IE,firefox,opera,chrome和safari中的表現結果並不相同。例如IE $(上下文選擇器)比$(context).find(選擇器) – 2011-05-23 06:06:30
我不沒有看到任何區別。爲什麼提出此問題呢? – 2011-05-23 05:31:56