2011-05-23 37 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