Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中动态替换类名_Javascript - Fatal编程技术网

如何在javascript中动态替换类名

如何在javascript中动态替换类名,javascript,Javascript,我想动态地更改一个类,并在其末尾附加一个计数器。我写了这段代码,但它被当作字符串处理 代码如下: var divClass = document.getElementById('div2'); var i = 1; setInterval(function () { divClass.className=divClass.className.replace('color','color'+ i); i++; },5000); 如何解决此问题?请改用: element.className

我想动态地更改一个类,并在其末尾附加一个计数器。我写了这段代码,但它被当作字符串处理

代码如下:

var divClass = document.getElementById('div2');
var i = 1;
setInterval(function () {
  divClass.className=divClass.className.replace('color','color'+ i);
  i++;
},5000);
如何解决此问题?

请改用:

element.className = 'other const clases' + 'color'+ i;

您必须更改类的完整字符串,或者使用例如regex分两步更改它,然后再次分配它。

我认为问题在于,在第一个循环之后,类名将是
color1
,而您只替换“color”部分,这样您就可以使用
color12
设置类名,因为它会覆盖上一个

divClass.className = 'color'+ i;
如果您在存储类之前就有了类,并且可以先存储它们,这样您就不会重写它们:
var classes=divClass.className

当您设置它们时,
divClass.className=classes+',color'+i

您可以使用JavaScript中的
类列表
功能,如下所示:

var divClass = document.getElementById('div2');
var i = 1;
setInterval(function () {
    divClass.classList.remove('color' + (i - 1));
    divClass.classList.add('color' + i++);
}, 5000);
您的数字很可能会被视为字符串,因为您正在使用字符串连接。通过将项目放在括号内,它们将作为数字执行(因为括号中的任何内容都首先运行),然后作为字符串连接起来。

1)什么是字符串?2) 您希望类名的最终状态是什么?