javascriptを使用してcssクラスセレクターを管理するオブジェクトを作成しました。
リテラルオブジェクトの使用は機能していますが、別のOOP方法を使用していません。
オブジェクトリテラル
var className = {
getList : function(element,cssClass){
return element.className.split(' ');
},
has : function(element,cssClass){
var classList=element.className.toLowerCase().split(' ');
return classList.has(cssClass.toLowerCase());
},
add : function(element,cssClass){
if(className.has(element,cssClass)==false){
element.className+=' '+cssClass;
}
},
remove : function(element,cssClass){
var index = element.className.toLowerCase().split(' ').indexOf(cssClass.toLowerCase());
if( index > -1 ){ //found
var classList=element.className.split(' ');
classList.splice(index,1);
element.className=classList.join(' ');
}
}
}
構築されたオブジェクト。(動作していません)
var cssClass = new function(element){
var that=this;
this.getList = function(){
return element.className.split(' ');
}
this.has = function(className){
var classList=element.className.toLowerCase().split(' ');
return (classList.indexOf(className.toLowerCase())>-1);
}
this.add = function(className){
if(that.has(className)==false){
element.className = className+' '+element.className;
}
}
this.remove = function(className){
var index = element.className.toLowerCase().split(' ').indexOf(className.toLowerCase());
if( index > -1 ){ //found
var classList=element.className.split(' ');
classList.splice(index,1);
element.className=classList.join(' ');
}
}
}
このエラーが発生します:
cssClass(d1).add('class1');
行:2メッセージ: "'[object Object]' is not a function(evaluating'cssClass(d1)')" sourceId:4600193304
ボーナスの質問:これは、JavaScriptを使用してCSSクラスを管理するための最良の方法ですか?標準のAPIはありますか?これを書くために分離されたプレーン関数を使用する必要がありますか?