jQuery,最佳使用问题

标签 jquery jquery-selectors

我不知道 jQuery 在幕后是如何工作的,但假设在某个时刻我创建了一个 jQuery 对象:

var thingy = $('#thingy');

在代码中,重用thingy有什么不同吗:

thingy.empty();

与再次制作 jQuery 相比? :

$('#thingy').empty();

我想在第二种情况下,我们必须创建另一个 jQuery 对象,但我怀疑这是微不足道的。我试图通过重用变量来避免对匹配元素进行 DOM 搜索。也许这种搜索在任何一种情况下都会发生?

我最初的假设是在创建 $ 对象时扫描文档。但后来我想到 $ 对象可能只是一个迭代器,每次执行其方法之一时它都会再次扫描文档。我想这就是我问题的关键。

最佳答案

如果您的选择器是单个对象,那还不错,但是如果您的选择器是 $('.thingy') 呢?每次您再次创建它时,它都会迭代整个文档来查找该类,而不是使用存储的选择。还不错,但随后它会为该选择创建一个新的 DOM 对象。如果有 500 个 .thingy 实例,那么很快就会陷入困境。

预计到达时间:正如 no.good.at.coding 指出的那样,每次使用任何类型的选择器时,都会遍历整个 DOM。所以是的 - 将其存储在一个变量中,调用该变量。

关于jQuery,最佳使用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6022772/

相关文章:

javascript - 在将图像保存到文件夹之前将图像输出到浏览器

javascript - 如何检查 jqm 日历日期在 jQuery Mobile 中是否有事件?

javascript - 如何在段落中找到一个不强的元素

javascript - 更改具有相同 id 的多个元素

javascript - jQuery 选择器中的波浪号

javascript - 使用 jQuery 选择多个后代?

jquery - 如何在悬停而不是点击事件时打开 BeRocket 过滤器,WordPress?

mouseenter() + animate() 的 jquery 问题

javascript - 如何存储 HTML 片段并稍后将其插入文档中?

jquery - 如何保存jquery选择器以供以后使用