代码之家  ›  专栏  ›  技术社区  ›  Mechlar

选择器:Id与上下文

  •  4
  • Mechlar  · 技术社区  · 15 年前

    我使用jQuery。

    所以,为了优化,我从选择器开始。

    例子:

    $('#childId', $higherElm);
    

    $('#childId');
    

    ????

    提前谢谢。

    5 回复  |  直到 15 年前
        1
  •  3
  •   Alex Gyoshev    15 年前

    如图所示 jQuery source , $('#id') 只是 document.getElementById $('#id', context) $(context).find('#id') . 所以第一个更快。

        2
  •  1
  •   hookedonwinter    15 年前

    this article ,使用更少、更直接的选择器会更快。 #id 比…好 #id #child ,至少在css中。。。

        3
  •  1
  •   Mark    15 年前

    选择一个ID绝对是最快的选择。

    再加上别的东西只会让它慢下来。

        4
  •  0
  •   Pointy    15 年前

    当您通过“id”进行选择时,上下文并不重要,因为引擎将调用 getElementById() 不管怎样。当然,上下文在语义上很重要,但是检查应该很快(我想在这种情况下,有上下文应该稍微 更慢的 ,但如果它对您的页面有实际意义,您就不能停止这样做。)

        5
  •  -1
  •   kander    15 年前

    不确定您上面描述的语法是否有用,但是 http://www.artzstudio.com/2009/04/jquery-performance-rules/ 它确实在规则5中指出使用子查询更快(这是有意义的)。。。不过,他们使用$higherElm.find()语法演示了它。

    在您的示例中-由于它直接映射到getElementById,这是一个本机函数调用-我认为您不会看到太多改进。然而,以元素集为目标的选择器(因此循环)可能会看到一些或主要的好处。