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

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

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

class名を追加したり削除したり

スペースがたくさんあってもブラウザが勝手にきれいにしてくれるから、下のような感じでオッケー。

HTMLElement.prototype.hasClassName=function(className){
  return this.className.split(/\s/).indexOf(className)!=-1;
}
HTMLElement.prototype.addClassName=function(className){
  if(this.hasClassName(className)){
    return null;
  }else{
    this.className+=' '+className;
    return className;
  }
}
HTMLElement.prototype.removeClassName=function(className){
  return this.className=this.className.split(/\s/).filter(function(i)i!=className).join(' ');
}
HTMLElement.prototype.toggleClassName=function(className){
  return this.hasClassName(className)?this.removeClassName(className):this.addClassName(className);
}
document.body.toggleClassName('c')

追記:classNameを追加したり削除したりトグルしたり。 - なんとなく目記を見て、もっと簡単にできないかなと思って出来たのが上のソース。