« Babelzilla の WTS で全ローカライズの進捗が100%と誤認識される問題 | Webページの拡大率を取得する » |
Firefox 3.6 にて HTMLElement.classList が実装
Firefox 3.5 以前
HTML中のある要素のクラス名を取得するには、 HTMLElement.className プロパティを使用する。
クラス名はスペース区切りで複数の値を指定可能であるので、クラス名にある値が含まれるかどうかを判定するには、
var elt = document.getElementById("test"); elt.className.indexOf("foo") >= 0;
のようにしてやればよいが、これでは foobar のような値が含まれている場合も true と判定されてしまう。
Firefox 3.6 以降
Firefox 3.6 にて導入された HTML 5 の仕様の一部である HTMLElement.classList プロパティにより、複数の値が指定されたクラス名の扱いが簡単になる。
HTMLElement.classList プロパティは、 DOMTokenList 型オブジェクトであり、 contains メソッドによってリスト中にある値が含まれるかどうかを正確に調べることができる。
var elt = document.getElementById("test"); elt.classList.contains("foo");
add メソッドや remove メソッドによってクラスに値を追加・削除したり、 toggle メソッドで値の有無を切り替えたりすることも可能。
クラスの個々の値を取得するには以下のようにする。
for (var i = 0; i < elt.classList.length; i++) { elt.classList.item(i); }
[…] SCRAPBLOG : Firefox 3.6 にて HTMLElement.classList が実装 (tags: firefox) […]