この記事は説明のために2つの部分に分割されます。特定のコンテンツは次のとおりです
パート1: AddClass、RemoveClass、HasClassメソッドのネイティブJS実装
function hasclass(elem、cls){cls = cls || ''; if(cls.replace(// s/g、 '').length == 0)falseを返す; // CLSにパラメーターがない場合、新しいregexp( ' + cls +' ').test(' ' + elem.classname +' ');} function addclass(ele、cls){if(!hasclass(cls)){ele.classname = ele.classname = =' '? CLS:ELE.CLASSNAME + '' + CLS; }} function addclass(ele、cls){if(!hasclass(elem、cls)){ele.classname = ele.classname == ''? CLS:ELE.CLASSNAME + '' + CLS; }} function removeclass(ele、cls){if(hasclass(elem、cls)){var newclass = '' + elem.classname.replace(/[/t/r/n]/g、 '') + ''; while(newclass.indexof( '' + cls + '')> = 0){newClass = newClass.Replace( '' + cls + ''、 ''); } elem.classname = newClass.Replace(/^/s+|/s+$/g、 ''); }}パート2:ネイティブJSを使用して、jQueryのaddclass、removeclass、hasclass関数を実装します
関数addclass(obj、cls){var obj_class = obj.classname、//クラスコンテンツを取得します。 blank =(obj_class!= '')? '': ''; //取得したクラスが空であるかどうかを守ります。空でない場合は、その前に「スペース」を追加します。追加= obj_class + blank + cls; //元のクラスと追加する必要があるクラスを組み合わせます。 obj.classname = addid; //元のクラスを交換します。}関数removeclass(obj、cls){var obj_class = '+obj.classname+' '; //クラスコンテンツを取得し、最初と最後にスペースを追加します。 ex) 'abc bcd' - > 'abc bcd' obj_class = obj_class.replace(/(/s+)/gi、 '')、//余分な空の文字をスペースに置き換えます。 ex) 'abc bcd' - > 'abc bcd'削除= obj_class.replace( ''+cls+''、 ''); //元のクラスの最初と最後のスペースにクラスを置き換えます。 ex) 'abc bcd' - > 'bcd'削除= removed.replace(/(^/s+)|(/s+$)/g、 ''); //開始スペースと終了スペースを削除します。 ex) 'bcd' - > 'bcd' obj.classname =削除; //元のクラスを交換してください。 obj_class_lst = obj_class.split(// s+/); // splitの空の文字を介してclsを配列に変換します。 x = 0; for(x in obj_class_lst){if(obj_class_lst [x] == cls){//配列をループし、CLSがtrueを含むかどうかを判断します。 }} false;}上記はこの記事に関するものです。誰もがJavaScriptプログラミングを学ぶことが役立つことを願っています。