setAttributeメソッド(setAttribute(name,value))でclass属性の属性値を設定するとき、第1引数に'class'を指定しても属性値を設定できない。しかし、第1引数を'className'にすれば属性値の設定ができる。
- Category: Internet Explorer, Windows, ver.6, ver.6 Under
- Tag: class, setAttribute
例示
<style type="text/css">
<!--
.a {
font-size: 2em;
color: red;
}
.b {
font-size: 2em;
color: blue;
}
-->
</style>
<script type="text/javascript">
<!--
function chgattr1() {
var obj = document.getElementById('elem');
if (obj.className == 'a') {
obj.setAttribute('class', 'b');
} else {
obj.setAttribute('class', 'a');
}
}
function chgattr2() {
var obj = document.getElementById('elem');
if (obj.className == 'a') {
obj.setAttribute('className', 'b');
} else {
obj.setAttribute('className', 'a');
}
}
// -->
</script>
<div class="a" id="elem">A</div>
<p><a href="javascript:chgattr1()">'class'で設定</a>/<a href="javascript:chgattr2()">'className'で設定</a></p>
アンカーをクリックすると、それぞれの方法でclass属性を変更しようとします。
実行結果
| UA | class | className |
|---|---|---|
| Moz1.0 | ○ | × |
| WinIE6.0 | × | ○ |
| Opera6.03 | × | × |
修正状況
WinIE6.0では'class'を指定することによる属性値設定はできません。


