以下三个样本和哪一个更好(如果有的话)之间的区别是什么?这些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