Javascript 如何动态更改HTML标记的CSS类?

Javascript 如何动态更改HTML标记的CSS类?,javascript,html,css,Javascript,Html,Css,我正在使用JavaScript。我有一个变量var boolVal,其计算结果为true/false。在我的页面上,我有一个标签: <div id='div1' class="redClass"></div> 或者我们应该使用AddClass?您可以像这样在DOM元素上编辑内联样式(本例中为高度): 基本语法是: document.getElementById("div1").style.[style property] = [value]; st

我正在使用JavaScript。我有一个变量
var boolVal
,其计算结果为
true
/
false
。在我的页面上,我有一个
标签:

<div id='div1' class="redClass"></div>

或者我们应该使用
AddClass

您可以像这样在DOM元素上编辑内联样式(本例中为高度):

基本语法是:

document.getElementById("div1").style.[style property] = [value];

style属性的语法可能会有所不同,可能与CSS文件中的语法不完全相同。例如,在上述示例中,CSS文件中的
背景色将是“backgroundColor”。

您可以使用API动态添加基于
id
的CSS类,如下所示:

document.getElementById('idOfElement').classList.add('newClassName');
还是老办法:

document.getElementById('idOfElement').className = 'newClassName';
// += to keep existing classes

或者,您可以使用下面显示的其他DOM查询方法来查找元素。最后三个返回一个集合,因此您必须对其进行迭代,并将该类应用于集合中的每个元素(类似于下面给出的每个元素的示例)


就你而言

var element = document.getElementById('div1');
if(boolVal)
   element.className= 'blueClass'; // += ' blueClass'; to keep existing classes
else
   element.className= 'redClass';
大概是这样的:

document.getElementById("MyElement").className = boolVal ? "redClass" : "blueClass";
你应使用:

    boolVal.onchange=function(){
                document.getElementById("MyElement").className = boolVal ? "redClass" : "blueClass";
    };
使用

首先,它不是一个纯Javascript方法。它与jQuery相关

setAttribute
className
这两种方法都用于设置类(类属性),这些方法不用于在现有类的基础上添加另一个类

document.getElementById('div1').setAttribute( "class", "blueClass" );

因此,如果您想将css类附加到元素,可以这样做-

 document.getElementById('div1').setAttribute( "class", document.getElementById('div1').getAttribute('class') + " blueClass" );

注意:使用这种方法,可以多次添加同一类。这只是使用javascript完成这项工作的一个技巧,并不是一个完美的解决方案

或者简单地使用jQuery添加类-

$("#div1").addClass("blueClass");

只需使用
className=
即可清除其他类。
document.getElementById("MyElement").className = boolVal ? "redClass" : "blueClass";
    boolVal.onchange=function(){
                document.getElementById("MyElement").className = boolVal ? "redClass" : "blueClass";
    };
document.getElementById('div1').className='blueClass';
document.getElementById('div1').setAttribute( "class", "blueClass" );
document.getElementById('div1').className="redClass";
 document.getElementById('div1').setAttribute( "class", document.getElementById('div1').getAttribute('class') + " blueClass" );
 document.getElementById('div1').className +=" redClass";
$("#div1").addClass("blueClass");