gpt4 book ai didi

javascript - 在 jQuery 中使用 find() 而不是 > 作为子选择器是否更有效?

转载 作者:可可西里 更新时间:2023-11-01 01:31:24 25 4
gpt4 key购买 nike

在 jQuery 中,我认为通过实现 1 找到具有特定选择器的子 DOM 会更有效,如下所示:

var $dataTable = $('#' + tabId + ' > div.container > div.dataTableContainer > table.dataTable');

但是我的一个 friend 告诉我,使用它会更有效率实现2如下:

var dataTable = $('#' + tabId).find('table.dataTable');

引用other question ,我发现实现 2 的效率可能低于:

var $dataTable = $('#' + tabId + ' div.container div.dataTableContainer  table.dataTable');

但是实现 2 会比实现 1 更有效吗?

最佳答案

document.querySelector() 与直接后代选择器 > 最快,.find() 最慢。

var tabId = "abc";

console.time(".find()");
var $dataTable = $('#' + tabId).find('table.dataTable');
console.timeEnd(".find()");

console.time("jQuery(), >");
var $dataTable = $('#' + tabId + ' > div.container > div.dataTableContainer > table.dataTable');
console.timeEnd("jQuery(), >");

console.time("document.querySelector()");
var $dataTable = document.querySelector('#' + tabId + ' div.container div.dataTableContainer table.dataTable');
console.timeEnd("document.querySelector()");

console.time("document.querySelector(), >");
var $dataTable = document.querySelector('#' + tabId + ' > div.container > div.dataTableContainer > table.dataTable');
console.timeEnd("document.querySelector(), >");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="abc">
<div class="container">
<div class="dataTableContainer">
<table class="dataTable">
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>

</div>

关于javascript - 在 jQuery 中使用 find() 而不是 > 作为子选择器是否更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39993827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com