1

960グリッドシステムを試して、divの配置について学ぶためのページを作成しました。ページには最大4つのdivがあります。ドロップダウンから新しいグリッドサイズ、プル、またはプッシュ値を選択した場合、現在のクラス、つまり、、またはを削除し、新しく選択したクラスを追加する必要がgrid_8ありpull_5ますpush_4

function alter_grid1(new_class_name){

   var old = document.getElementById('grid1');
   var classes = old.className.split(' ');
   var old_class_name = 'cessna';
   $.each(classes, function(){

        if(old_class_name == 'cessna' || old_class_name == null){
          old_class_name = this.match('/grid_1|grid_2|grid_3|grid_4|grid_5|grid_6|grid_7|grid_8|grid_9|grid_10|grid_11|grid_12|grid_13|grid_14|grid_15|grid_16|grid_17/');
       }
   });
   $(old).removeClass('grid_1 grid_2 grid_3 grid_4 grid_5 grid_6 grid_7 grid_8 grid_9 grid_10 grid_11 grid_12 grid_13 grid_14 grid_15 grid_16').addClass(new_class_name);
   console.log('Old grid1 class name is ' + old_class_name + ' and New grid1 class name is ' + new_class_name);
}

addClass(new_class_name);何の問題もなく使用できます。

問題なく使用できますremoveClass('grid_8');(実際のクラス名はgrid_8)

私が使用するとき、それはうまくいきremoveClass(old_class_name);ません。エラーメッセージはなく、firebugには何もありませんが、機能しません。

以前の値がどうなるかわからないので、そこにある可能性のあるクラスをすべて削除する必要があります

 $(old).removeClass('grid_1 grid_2 grid_3 grid_4 grid_5 grid_6 grid_7 grid_8 grid_9 grid_10 grid_11 grid_12 grid_13 grid_14 grid_15 grid_16').addClass(new_class_name);

それが私がそれを機能させることができる唯一の方法です。確かに機能しますが、何かが足りないか、何か間違ったことをしているようです。それが助けになるなら、あなたは私がここでやろうとしていることを見ることができます。varを使用してクラスを追加する方法がわかりませんが、同じ方法でクラスを削除することはできません。

4

1 に答える 1

2

正規表現が間違っているようです。スラッシュのない文字列またはスラッシュのみを使用してください。

old_class_name = this.match(/grid_1|grid_2|grid_3|grid_4|grid_5|grid_6|grid_7|grid_8|grid_9|grid_10|grid_11|grid_12|grid_13|grid_14|grid_15|grid_16|grid_17/);

または多分さえ

old_class_name = this.match(/grid_[0-9]+/);
于 2012-01-31T09:47:57.150 に答える