素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: twitter: @javascripter にどうぞ。

classList、relListがFirefoxに入った

HTML5で定義されている、classNameやrelを操作するための新しいAPIFirefoxナイトリーに入った。

var p = document.createElement("p");

p.classList.add("foo");
console.assert(p.className == "foo");

p.classList.add("bar");
console.assert(p.className = "foo bar");
console.assert(p.classList.item(0) == "foo");
console.assert(p.classList.item(1) == "bar");
console.assert(p.classList.item(2) == null);

p.classList.remove("foo");

console.assert(p.className == "bar");
console.assert(p.classList.contains("bar"));
console.assert(!p.classList.contains("foo"));

p.classList.toggle("fizz");
console.assert(p.className == "bar fizz");
console.assert(p.classList.contains("fizz"));

p.classList.toggle("fizz");
console.assert(!p.classList.contains("fizz"));

このように、classListを使うと、className全体を触らずに簡単に個々の文字列を追加したり削除したり、トグルできる。
classListはHTMLCollectionのように動的な配列風オブジェクトであり、配列のように[]でアクセスすることもできる。

relListもだいたい同じように扱えるが、大文字小文字の扱いなどが微妙に違う。