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

jQuery选择器专用性

  •  2
  • Squirkle  · 技术社区  · 15 年前

    我只是在学习jQuery,还没有找到专门解决这个问题的人。

    4 回复  |  直到 15 年前
        1
  •  4
  •   user113716    15 年前

    最好不要将标记名放在ID之前。

    ID查找使用本机 getElementById() 和的速度非常快,因此任何不需要的额外比较只会减慢选择器的速度。

    $('#myID') 而不是 $('div#myID') .

    性能差异很小,但许多最佳实践都是如此。

    可能只有在两个不同的页面使用相同的javascript文件时才需要这样做,这两个页面使用相同的ID,但标记类型不同。那么你就需要说明符了。

    如果是这样的话,你最好调整一下你的身份证。

        2
  •  5
  •   Glorfindel Doug L.    6 年前

    只需使用#id。

    结果很明显。

    电话)

    #nodeId=0.095ms(4个方法调用)

    alt text
    gyazo.com )

        3
  •  0
  •   ScottE    15 年前

    差异可能很小,但当有疑问时,在Firebug中的profile。

    我马上给你拿一份推荐信。

    编辑

    我找不到速度测试的快速参考,但这可能是不值得担心的过早优化之一,尤其是使用IDs。我认为sizzle引擎很擅长解决这个问题。

    编辑#2

    http://api.jquery.com/id-selector/#id

    以及他们的名言:

    像往常一样,记住这一点 开发人员,您的时间通常是 最有价值的资源。不要集中注意力 选档杆转速的优化 除非很明显 需要改进。

        4
  •  -2
  •   Rod    15 年前

    如果你假设:

    <span id="element"></span>
    <div id="element"></div>
    

    $("#element") 将选择两者,而 $("div#element") 只会得到div,更具体。