2010-06-23 91 views
9

我觉得像$('.selector', myContext)myContext.find('.selector')是两种相同的方式来获得相同的信息。是否有一个实际的理由,当你使用一个在另一个?也许速度?

回答

10

$('.selector', myContext)$(myContext).find('.selector')是完全等效的:

从jQuery 1.4.2源(core.js):

//... 

// HANDLE: $(expr, context) 
// (which is just equivalent to: $(context).find(expr) 
} else { 
    return jQuery(context).find(selector); 
} 

//... 
+0

我记得一个博客帖子什么的,可能是由约翰Resig的,是不赞成的“上下文”第二个参数的风格。 – Pointy 2010-06-23 23:14:58

+0

谢谢你的回答 – Jason 2010-06-23 23:37:33

+1

@Pointy如果你能找到一个链接,你会介意张贴在这里吗?我之前使用过上下文参数,并且喜欢将我的编码实践调整为推荐的方式。 – jinglesthula 2012-07-06 16:46:14

1

第一个涉及的代码略少字符,但比同样的事情

其他
0

当一个新的jQuery对象创建构造函数试图找出什么传入当上下文是一个DOMElement jQuery的转换$(选择,背景)到$(上下文)。找到(选择)。 您可以避免构造函数所执行的大部分逻辑,包括通过自己进行此更改的一些字符串解析。 (摘自以下职位: http://engineeredweb.com/blog/10/12/3-tips-make-your-jquery-selectors-faster/