ここでは、知識を増やすためのリソースをさらに入手できます。そして、例は非常に役立つと確信しています! あなたもTHISのように役立ついくつかの SO の質問があります。--クレジットピーター・ボートン
これは、IE、FF、Opera でテストされています。
var css = 'h1 { background: red; }',
head = document.getElementsByTagName('head')[0],
style = document.createElement('style');
style.type = 'text/css';
if(style.styleSheet){
style.styleSheet.cssText = css;
}else{
style.appendChild(document.createTextNode(css));
}
head.appendChild(style);
要素にクラスを追加するには:
document.getElementById("MyElement").className += " MyClass";
要素からクラスを削除するには:
document.getElementById("MyElement").className =
document.getElementById("MyElement").className.replace
( /(?:^|\s)MyClass(?!\S)/ , '' )
/* code wrapped for readability - above is all one statement */
onclick イベントでこれを行うには:
<script type="text/javascript">
function changeClass()
{
// code examples from above
}
</script>
...
<button onclick="changeClass()">My Button</button>
さらに良いことに、次のことを可能にするフレームワーク (この例では jQuery) を使用します。
$j('#MyElement').addClass('MyClass');
$j('#MyElement').removeClass('MyClass');
$j('#MyElement').toggleClass('MyClass');
また:
<script type="text/javascript">
function changeClass()
{
// code examples from above
}
$j(':button:contains(My Button)').click(changeClass);
</script>
...
<button>My Button</button>
これにより、HTML マークアップが JS 対話ロジックから分離されます。これにより、特に大規模で複雑なアプリケーションでは、メンテナンスが大幅に容易になります。