既に設定してあるクラスを維持した状態で、サブクラスを追加する場合やサブクラスを削除(解除)する場合はclassListプロパティを利用すると簡単に実現できます。
classListプロパティの利用についてはこちらの記事を参照して下さい。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
function buttonClick() {
target = document.getElementById("important");
if (target != null) {
target.className = "importantText";
}
}
</script>
<link rel="stylesheet" type="text/css" href="JavaScriptChangeCssClass.css"/>
</head>
<body>
<p>このドキュメントは<span id="important">重要</span>です。取り扱いに注意してください。</p>
<input id="Button1" type="button" value="button" onclick="buttonClick();"/>
</body>
</html>
.importantText{
font-weight:700;
color:#FF0000;
}
function buttonClick() {
target = document.getElementById("important");
if (target != null) {
target.className = "importantText";
}
}
target = document.getElementById("important");
if (target != null) {
target.className = "importantText";
}
<span id="important" class="importantText">重要</span>
.frame {
width:320px;
height:64px;
border:solid 1px #009413;
}
.frame.highlight {
background-color:#ffec85;
}
.frame.highlight.important {
border: 2px solid #ff6a00;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
function buttonClick() {
target = document.getElementById("frame01");
if (target != null) {
target.className = "frame highlight important";
}
}
</script>
<link rel="stylesheet" type="text/css" href="JavaScriptChangeCssSubClass.css" />
</head>
<body>
<div id="frame01" class="frame">枠です。</div>
<hr/>
<input id="Button1" type="button" value="SetSubClass" onclick="buttonClick();" />
</body>
</html>
frame highlight important
のクラス名を設定します。 function buttonClick() {
target = document.getElementById("frame01");
if (target != null) {
target.className = "frame highlight important";
}
}
frame
クラス frame highlight
サブクラス frame highlight important
サブサブクラスの2つのクラスのスタイルを記述しています。frame highlight important
クラスが指定されると、記述した3つの記述がすべて適用されます。.frame {
width:320px;
height:64px;
border:solid 1px #009413;
}
.frame.highlight {
background-color:#ffec85;
}
.frame.highlight.important {
border: 2px solid #ff6a00;
}
highlight
サブクラスと important
サブサブクラスが適用されます。highlightサブクラスに設定されているスタイルにより
枠の背景色が黄色に変わります。また、important サブサブクラスに設定されているスタイルにより、枠の線が2pxになり、枠線の色がオレンジ色に変わります。