スタイルシートクラスを入れ替える(クラスが複数指定されている場合)

説明

スタイルシートクラスが複数指定されている場合に特定のクラスだけを入れ替えるには正規表現を利用して置換を行うreplace()を使います。現在設定されているスタイルシートクラスを読み出し、特定のクラスだけを置換した後に再度classNameプロパティに代入することで特定のクラス名だけを入れ替えることができます。
JavaScriptテクニック ブック  詳しい解説などはJavaScriptテクニック ブックを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>スタイルシートクラスを入れ替える(クラスが複数指定されている場合)</h1>
<form action="./setcss.cgi" method="get" name="mainForm">
<input type="button" id="setButton1" value="クラスをnormalに変更">
<input type="button" id="setButton2" value="クラスをcautionに変更">
</form>
<div id="result" class="common normal">
ここのエリアの背景色と文字色が変わります。<br>
しかし文字サイズは変わりません。
</div>
</body>
</html>

window.onload = function(){
document.getElementById("setButton1").onclick = function(){
var divBox = document.getElementById("result");
divBox.className = divBox.className.replace(/caution/g, "normal");
}
document.getElementById("setButton2").onclick = function(){
var divBox = document.getElementById("result");
divBox.className = divBox.className.replace(/normal/g, "caution");
}
}