javascript - 在 Jquery 中查找与选择器速度

标签 javascript jquery css

<分区>

我有一个包含很多行的表格。我需要使用 jquery 查找 td 数据。 有很多方法可以获取该数据

1. $("table tr td").each(function(){})

2. $("table").find("tr").find("td").each(function(){})

现在我想知道哪种方法更好,为什么?

最佳答案

使用 console.timeconsole.timeEnd 进行分析将为您提供以微秒为单位的性能。

console.time('withSelector');
   for(var i=0; i<10E4 ;i++)
      $("table tr td");
console.timeEnd('withSelector');

同样适用于 $("table").find("tr").find("td") .. 运行下面的代码片段 👇🏼

结果

enter image description here

分析:

With selector 优于 find

function withSelector() {
   $("table tr td");
}



function withFind() {
   $("table").find("tr").find("td")
}

function run(fn, times) { 
   console.time(fn.name);
   for(var i=0; i<times ;i++)
      fn();
   console.timeEnd(fn.name);
}

run(withSelector, 10E4);

run(withFind, 10E4);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<table>
  <tr>
    <th>Month</th>
    <th>Savings</th>
  </tr>
  <tr>
    <td>January</td>
    <td>$100</td>
   
  </tr>
  <tr>
    <td>February</td>
    <td>$80</td>
  </tr>
  <tr>
    <th>Month</th>
    <th>Savings</th>
  </tr>
  <tr>
    <td>January</td>
    <td>$100</td>
  </tr>
  <tr>
    <td>February</td>
    <td>$80</td>
  </tr>
  <tr>
    <th>Month</th>
    <th>Savings</th>
  </tr>
  <tr>
    <td>January</td>
    <td>$100</td>
  </tr>
  <tr>
    <td>February</td>
    <td>$80</td>
  </tr>
  <tr>
    <th>Month</th>
    <th>Savings</th>
  </tr>
  <tr>
    <td>January</td>
    <td>$100</td>
  </tr>
  <tr>
    <td>February</td>
    <td>$80</td>
  </tr>
  <tr>
    <th>Month</th>
    <th>Savings</th>
  </tr>
  <tr>
    <td>January</td>
    <td>$100</td>
  </tr>
  <tr>
    <td>February</td>
    <td>$80</td>
  </tr>
</table>

关于javascript - 在 Jquery 中查找与选择器速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42153265/

上一篇:css - 带空格的字体需要用引号括起来吗?

下一篇:css - Highcharts 父级 100% 高度具有 50% 高度

相关文章:

javascript - 如何使类型 =“text” 不键入减号 (-)?

html - 如何将 ionic 侧菜单嵌套到 ionic 导航 View 中?

css - 偶尔的 CSS 谷歌字体损坏?

javascript - 如何传递dicom文件在基石库中的路径并显示它?

javascript - 将 jqGrid 自定义导航添加到顶部工具栏

javascript - 如何从直播 list 中读取/获取信息

css - 将查询字符串连接到字体 url

javascript - 我在 div 中有一个 Canvas 。我如何得到它?

javascript - 如何根据屏幕尺寸更改 slider 和表单高度

javascript - 如何在数组中添加数字,并在向数组添加更多数字时重新计算并添加数字?