相关疑难解决方法(0)

getElementsByClassName - 奇怪的行为

首先,抱歉我的英语不好......

我写了一个函数来改变元素类来改变它们的属性.出于某种原因,只有一些元素发生了变化,我花了几个小时才找到解决方案,但他对我来说似乎很奇怪,也许你可以向我解释一下.

function replace(){
  var elements = document.getElementsByClassName('classOne');

  for (var i = 0; i < elements.length; i++) {
    elements[i].className = 'classTwo';               
  }
}
Run Code Online (Sandbox Code Playgroud)

不能正常工作,在这里演示,[在chrome 25和FF],所以我采用了循环系数:

function replace(){
  var elements = document.getElementsByClassName('classOne');

  for (var i = 0; i < elements.length; i) { // Here’s the difference
    elements[i].className = 'classTwo';               
  }
}
Run Code Online (Sandbox Code Playgroud)

这很好用!似乎被称为"推",并且不需要系数......这是正常的吗?它与我见过的例子不同.

提前致谢!

html javascript getelementsbyclassname htmlcollection

13
推荐指数
2
解决办法
1694
查看次数

Javascript for循环突然中断

我有以下问题.

我生成一个列表,其中包含具有特定类的所有元素.在那之后我通过他们循环来替换班级.

正如你在这里看到的:https://jsfiddle.net/nafxLoLz/只有2个元素中的一个被替换.console.log清楚地表明循环只经过一次.如果我评论7个javascript代码.(见小提琴)循环工作正常.

我做错了什么?

码:

var list = document.getElementsByClassName("default");
console.log(list.length);
for(var i = 0; i < list.length; i++)
{
  console.log(i);
  list[i].classList.add("red");
  list[i].classList.remove("default");
}
Run Code Online (Sandbox Code Playgroud)

javascript

4
推荐指数
1
解决办法
71
查看次数