2011-05-23 62 views
2

以下三個樣本和哪一個更好(如果有的話)之間的區別是什麼?這些jQuery選擇器有什麼區別嗎?

$("#x span").hide(); 

$("#x").find("span").hide(); 

$("span", "#x").hide(); 
+0

我不沒有看到任何區別。爲什麼提出此問題呢? – 2011-05-23 05:31:56

回答

3

它們都會匹配相同的東西; 最好的一個基於上下文。除非我有一個指向現有集合的變量,否則我會使用第一個示例。那麼我顯然會使用find()方法。

這些舊的$(selector, context)(你的第三個例子)現在看起來不多,可能是因爲它在後臺翻譯爲$(context).find(selector)(並且它更容易閱讀)。

+0

在nettuts的博客文章中,我看到了兩個術語:「上下文」和「範圍」。他們在這裏嗎?如果是的話,那麼我會感激他們不同的例子。 。 。感謝:-) – seoul 2011-05-23 05:38:37

+0

@首爾我不確定100%你的意思。我在英文術語的意思中使用了* context *,並沒有在我的答案中使用* scope *。 – alex 2011-05-23 05:43:27

+0

轉到此鏈接 - 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