Javascript 如何动态更改HTML标记的CSS类?
我正在使用JavaScript。我有一个变量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
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");