【发布时间】:2018-08-18 07:54:45
【问题描述】:
我在一个页面上有几千个元素,它们的 CSS 类应该在按下按钮时更改。 目前我的js代码如下:
for each (var id in list) {
var element = document.querySelector('[data-id="' + id + ']');
element.className = 'myClass';
}
在 IE 中,这需要将近 20 秒。我做了一些分析,似乎 .className 操作需要半毫秒;这与垃圾收集一起使得它需要这么长时间。我不确定 .className 是否会导致回流。
无论如何,我怎样才能比现在更快地完成这项任务?
【问题讨论】:
-
什么
for each??? -
它似乎已被弃用。替换为 for (x of y)
-
它从未存在过
-
在 Javascript 1.6 中引入,不知道何时弃用:developer.mozilla.org/en-US/docs/Web/JavaScript/…
-
哦,对了,这从来都不是语言的一部分,我很惊讶它居然在规范中
标签: javascript performance dom