【问题标题】:What is faster to find in jQuery - ID's that start with X or a class? [duplicate]在 jQuery 中找到什么更快 - 以 X 或类开头的 ID? [复制]
【发布时间】:2016-09-30 18:15:46
【问题描述】:

如果你有 html 并且在整个过程中都有像这样的 span 元素:

<span id="element-1" class="elements"></span>
<span id="element-2" class="elements"></span>
<span id="element-3" class="elements"></span>

如何更快地找到它们:

$('.elements')

$('[id^="element-"]')

【问题讨论】:

  • IMO,class 其他选择器基于 attribute selectors
  • ID,总是更快,应该只有一个。哦,我明白了..hmm,是的,我必须同意 Rayon,属性选择器很糟糕。

标签: javascript jquery


【解决方案1】:

我不认为速度是一个问题,它们之间的差异是如此之快,不会影响你的代码..

【讨论】:

  • 没想到,谢谢:)
  • 直到你有 1000 个元素并且不链接你的 jquery...然后速度是一个 huge 问题。有 2 或 3... 嗯
【解决方案2】:

我认为,id 选择器工作得更快。

HTML ID 属性在每个页面中都是唯一的,即使是较旧的浏览器也可以非常快速地定位单个元素。

【讨论】:

    【解决方案3】:

    Id 显然比 class 更快,因为只能有一个 Id,一旦找到就不需要再搜索了。但是速度不是问题。如果你需要对多个元素做一些工作,你使用类,但如果你需要对一个特定元素做一些工作,你使用 Id。

    【讨论】:

      【解决方案4】:

      html 中的 ID 在 JS 中自动分配。

      因为该名称的页面上只能有 1 个id整个元素被赋值给一个JS变量。

      例如:元素&lt;span id='spanTagOne'&gt;Text&lt;/span&gt;将是一个JS变量spanTagOne

      所以你甚至不需要得到它们,因为它们已经被分配了。

      【讨论】:

        【解决方案5】:

        试试这个方法找

        $('parent').find('.child') 是一种更快的查找元素的方法。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-06-19
          • 1970-01-01
          • 1970-01-01
          • 2014-04-04
          • 1970-01-01
          • 2011-04-21
          • 2011-06-11
          相关资源
          最近更新 更多