2010-07-13 2 views
0

Мне нужно удалить существующий класс элемента и добавить другой класс ... или в ближайшее время я хочу заменить конкретный класс с буквой 'border' как подстроку другим классом с буквой 'border' как подстрока. Я должен переключаться между 8 классами. Я попытался выбрать предыдущий класс, например strClass = $ ("#" + styleTarget [class * = 'border']), но он не удался. Будет ли «переключать» помочь мне в этом. Это очень срочно. БлагодаряУдалить и добавить определенные классы - JQuery

ответ

1

Вы можете сделать что-то вроде этого:

var classes = ['border1', 'border2', 'border3', 'border4']; 
$("div[class*='border']").click(function() { 
    for(var i=0; i<classes.length; i++) { 
    if($(this).hasClass(classes[i])) { 
     $(this).removeClass(classes[i]).addClass(classes[(i+1)%classes.length]); 
     break; 
    } 
    } 
}); 

You can try it here, он будет работать для любого количества классов, просто добавьте столько, сколько вы хотите пройти. Концепция довольно прямолинейна, когда щелчок элемента мы прокручиваем через массив, если мы найдем класс, который он имеет (через .hasClass()), мы удаляем его (через .removeClass()) и присваиваем ему следующий класс (через .addClass()).

Модуль (i+1)%classes.length должен обрабатывать перенос вокруг начала массива, когда он в настоящее время имеет последний класс в нем.

+0

Мне очень нравится модуль. это такая простая техника для чего-то, над чем я устарел много лет. Мне нравится изучать что-то новое (даже если оно устарело для некоторых). Спасибо. – Michael

0

Вы можете найти класс с селектором, а затем использовать .html переписать имя класса

0

Я никогда не пробовал использовать тумблер с классами, то, что всегда работал для меня:

$("#element").addClass("some_class");
$("#element").removeClass("some_class");

0

Мы могли бы предоставить лучший ответ, если вы поделились своим кодом, но функция .toggleClass() удалит класс, если он в настоящее время используется для выбранного элемента или добавляет его, если он не существует. И вы можете указать несколько классов для удаления или добавления:

// removes or adds classes depending on existence 
$('#element_id').toggleClass('one two three four'); 
Смежные вопросы