jquery - 哪个 CSS 选择器更快 : ul > li:nth-of-type(3) > a . 。或 ul > li > a:nth-of-type(3)

标签 jquery html css optimization

假设我有一个列表

<ul>
  <li>
    <a>List item 1</a>
  </li>
  <li>
    <a>List item 2</a>
  </li>
  <li>
    <a>List item 3</a>
  </li>
  <li>
    <a>List item 4</a>
  </li>
</ul>

然后是选择器 ul > li:nth-of-type(3) > aul > li > a:nth-of-type(3)定位相同的元素。但哪个平均速度更快?为什么?

一般来说,如果你有类似的东西

<ul>
  <li>
    <a>List item 1</a>
  </li>
  <li>
    <a>List item 2</a>
  </li>
  .
  .
  .
  <li>
    <a>List item k</a>
  </li>
</ul>

并且需要选择ul > li:nth-of-type(i) > a对于一些 i[1, k] 范围内, 使用 ul > li > a:nth-of-type(i) 是否更快???

最佳答案

正如评论中已经提到的,这些选择器不会选择相同的内容。

一个小的 jquery fiddle 将显示差异 http://jsfiddle.net/7pz402te/

事实上,a:nth-of-type() 会快得多,因为您的 li 中只有一个链接。

ul > li:nth-of-type(3) > a {
  font-size: 40px;
}
ul > li > a:nth-of-type(3) {
  color: magenta;
}
<ul>
  <li>
    <a>List item 1.1</a>
    <a>List item 1.2</a>
    <a>List item 1.3</a>
  </li>
  <li>
    <a>List item 2.1</a>
    <a>List item 2.2</a>
    <a>List item 2.3</a>
  </li>
  <li>
    <a>List item 3.1</a>
    <a>List item 3.2</a>
    <a>List item 3.3</a>
  </li>
  <li>
    <a>List item 4.1</a>
    <a>List item 4.2</a>
    <a>List item 4.3</a>
  </li>
</ul>

关于jquery - 哪个 CSS 选择器更快 : ul > li:nth-of-type(3) > a . 。或 ul > li > a:nth-of-type(3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26553237/

相关文章:

javascript - 当图像已经具有 href 标签时,如何将其设为链接?

javascript - 如何设置列的高度相等?

html - 如何让 "fit-content"跨浏览器工作?

html - 将div内容拉伸(stretch)到页面底部固定位置页脚

css - 导航不会留在标题内

javascript - 在按钮标题中显示 URL

javascript - 当我使用 ajax 和 jquery 的 $.get() 渲染新内容时,旧内容会发生什么?

c# - 使用 Web 表单进行 jQuery 回发

javascript - 使用 JavaScript 打开另一个 html 页面时传递变量

html - 带 float 的嵌套 div