这个Javascript非常慢

这个Javascript非常慢,javascript,html,Javascript,Html,我正在努力实现的目标: 我试图将abbr的标题分别更新为“.Left”和“.Right”类中的值。我提出了一个jQuery解决方案,但它在加载时间方面太贵了,我正试图提出一个Javascript解决方案,但我被卡住了。我是JS新手,所以我有很多关于DOM的知识需要学习 我给出的HTML会重复100次(完全相同的框架)。如何使代码更高效?另外,我得到了一个“不能设置null的属性标题”错误 var ratedSection=document.getElementsByClassName('rat

我正在努力实现的目标:

我试图将abbr的标题分别更新为“.Left”和“.Right”类中的值。我提出了一个jQuery解决方案,但它在加载时间方面太贵了,我正试图提出一个Javascript解决方案,但我被卡住了。我是JS新手,所以我有很多关于DOM的知识需要学习

我给出的HTML会重复100次(完全相同的框架)。如何使代码更高效?另外,我得到了一个“不能设置null的属性标题”错误

var ratedSection=document.getElementsByClassName('ratedSection');
var ratedQuest=document.getElementsByClassName('ratedQuest');
var selector=document.getElementsByClassName('selector');
对于(var i=0;i/g,“”);
right=right.innerHTML.replace(/
/g,“”); 对于(var j=0;j

东西

里面
这里 更多
东西
里面
这里 7. 1.
让我们消除一些混乱,看看循环代码:

for(var i = 0; i < ratedSection.length; i++)
  for(var j = 0; j < ratedQuest.length; j++)
    for(var k = 0; k < selector.length; k++)
但你实际上是这样做的:

FOR EACH section IN PAGE
  FOR EACH quest IN PAGE
    FOR EACH selector IN PAGE
循环的每一次,你都会看到一整页的任务/选择器项目,而不仅仅是当前部分中的项目。您将从
文档
中获得对任务和选择器的引用,而不是从当前部分


迭代次数不是100次,而是10000次。当您进入第一个循环时,在section对象上使用
querySelector
,因此,要仅获取所需的元素,只需执行ratedQuest=ratedSelection[i].getElementsByClassName('ratedQuest')等操作。实际上,这应该可以做到=)您可以在较小的页面上尝试,并放入
console.log
语句,以验证您选择的元素是否正确。运行该代码需要80秒。。。我感谢你的帮助!
FOR EACH section IN PAGE
  FOR EACH quest IN PAGE
    FOR EACH selector IN PAGE