Internet Explorer 6 および 7 で class 属性を取得する方法
本文
Internet Explorer 6 (IE6) および 7 (IE7) で、(X)HTML 文書中の要素の class 属性の値を JavaScript を使って取得しようとしてなかなか上手く行かなかったのでメモ。
普通、class 属性の値を取得するためには、例えば変数 elem に Element オブジェクトが入っているとして
classValue = elem.getAttribute("class");
という風に Element.getAttribute メソッド を使用します。 当然 Firefox 3.5 や IE8 などでは上手く動きました。 が、何故か IE6 と IE7 では上手く属性値がとれませんでした。 IE6 や IE7 の場合はどうすればいいかは IEでclassの値を取得する場合の注意 - JavaScript に書いてありました。<a class="foo" href="#">bar</a> なエレメントにおいて class の値を取得するには、通常 obj.getAttribute('class') でいいのですが、IE は属性値を className にしないととれません
というわけで、IE6, 7 でもちゃんと class 属性の値をとるためには以下のようにします。
classValue = elem.getAttribute("class") || elem.getAttribute("className");
参照先では "className" がダブルクオーテーション (") でくくられていませんが、実際には必要ですのでご注意ください。