javascript - 为什么这个 Javascript 循环需要一分钟进行 100 次迭代?

标签 javascript jquery

我在程序中使用以下代码,但似乎这几行代码执行起来花费了太多时间。对于 100 次迭代,大约需要 1 分钟。对于 200 多次迭代,我的浏览器显示一条警告消息,指出脚本花费了太多时间。根据场景,可以将 500 多个 id 推送到数组中。

for (var i = 0; i < arrid.length; i++)
{
    $("#" + outerDiv + "> div[id=" + arr[i] + "]").attr("class", "selected");
}

arrid 是一个 div id 数组。 Outerdiv 是 arrid 中所有这些 div id 的父 div。 arr ids 无法直接访问,必须使用父 div 引用,即outerDiv。

最佳答案

你可以做的一件快速的事情就是缓存你的选择器,这样 jQuery 就不必查询 dom 500 多次。

var $div = $("#" + outerDiv);

for (var i = 0; i < arrid.length; i++)
{
    $div.children("div[id=" + arr[i] + "]").attr("class", "selected");
}

再想一想,由于您有一个 id 列表,因此您不需要任何其中的内容,因为每个 dom 的 id 应该是唯一的。

for (var i = 0; i < arrid.length; i++)
{
    $("#" + arr[i]).attr("class", "selected");;
}

关于javascript - 为什么这个 Javascript 循环需要一分钟进行 100 次迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5702481/

相关文章:

javascript - Vue.js:定义一个服务

javascript - 绕过 URL 编码(客户端)执行 XSS

javascript - 自动聚焦列表项中的表单输入

javascript - 使表单中的按钮有不同的方法将数据发送到服务器

javascript - 如何遍历 JavaScript 中的单个项目?

javascript "this"未能定位

jquery - 样式表边框不在行突出显示上移动?

javascript - jQuery Ajax POST 请求

javascript - 单击“赞”按钮后确认链接出现

javascript - 未捕获类型错误 : Cannot read property 'indexOf' of undefined (observer-scripts. js)