Я создал страницу, чтобы поиграться с 960 Grid System, узнать о размещении 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);
без проблем.
Я могу использовать use 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, но не удалить его одним и тем же способом.