我觉得$('.selector', myContext)
和myContext.find('.selector')
是获得相同信息的两种相同方式。当你使用一个而不是另一个时,是否有一个实际的原因?速度呢?
答案 0 :(得分: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 );
}
//...
答案 1 :(得分:3)
在内部,选择器上下文是 用.find()方法实现, 所以$('span',this)相当于 $(本).find( '跨度')。
答案 2 :(得分:1)
第一个涉及的代码字符略少,但除了那个相同的东西
答案 3 :(得分:0)
当创建一个新的jQuery对象时,构造函数会尝试找出传入的内容。当context是DOMElement时,jQuery将$(selector,context)转换为$(context).find(selector)。 您可以通过自己进行此更改来避免构造函数执行的大部分逻辑,包括一些字符串解析。 (摘自以下帖子: http://engineeredweb.com/blog/10/12/3-tips-make-your-jquery-selectors-faster/ )