如何在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) 您希望类名的最终状态是什么?