jQuery选择如何在场景后面工作?

时间:2011-10-27 00:36:09

标签: jquery jquery-selectors

以下哪个选择器具有更好的性能(如果不相同)

  1. $('#location_form input#id_name')
  2. $('#id_name')
  3. 我经常会遇到像上面这样的问题。我无法真正回答它们,因为我缺乏关于如何在幕后进行选择工作的知识。

    我问:

    1. 对上述问题的回答/意见
    2. 解释jQuery选择如何在场景背后工作的参考
    3. 在选择时,所有javascript框架的工作方式与jQuery相同吗?
    4. 非常感谢。

2 个答案:

答案 0 :(得分:3)

像往常一样,“它取决于”。 对于一个简单的小文档,没有太大的区别。

对于更大的文档,#1可以有更好的性能,因为它将搜索限制为id为'location_form'的元素的后代,而#2将搜索整个文档。

请参阅http://api.jquery.com/category/selectors/,更具体地说,请http://api.jquery.com/descendant-selector/

答案 1 :(得分:3)

使用选择器,后者更快,因为jQuery确定您只想按ID选择并返回document.getElementByIDhttps://github.com/jquery/jquery/blob/master/src/core.js#L145-165

以下是完整的源代码:https://github.com/jquery/jquery/blob/master/src/core.js#L78-188