jQuery:$('。selector',myContext)和myContext.find('。selector')之间是否存在功能差异?

时间:2010-06-23 23:10:13

标签: jquery

我觉得$('.selector', myContext)myContext.find('.selector')是获得相同信息的两种相同方式。当你使用一个而不是另一个时,是否有一个实际的原因?速度呢?

4 个答案:

答案 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( '跨度')。

来自:http://api.jquery.com/jQuery/#jQuery1

答案 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/

相关问题