jQuery: removeClass, когда класс является частью условия

Мне просто интересно, если это возможно с JQuery:

if (jQuery(".the-title").is('.selected')) {
    jQuery('.the-copy').css('display', 'block');
    jQuery(".the-title").removeClass('.selected'); //is this possible?
}

По сути, я хочу знать, могу ли я удалить класс, который создает условие внутри оператора if. Если нет, есть идеи, как этого добиться?

Спасибо

5 ответов

Да, это возможно. Тем не менее, ваш синтаксис для removeClass это неверно. Не должно включать предыдущий период:

if($(".the-title").is('.selected')) 
{
    $('.the-copy').css('display', 'block');
    $(".the-title").removeClass('selected'); //is this possible?
}

Пожалуйста, посмотрите эту jsFiddle для демонстрации> http://jsfiddle.net/QL7ds/1/

Да. Этот код прекрасно работает, так как условие оценивается до запуска внутреннего блока.

Да, это возможно. Вы просто оцениваете, есть ли у элемента класс, если он есть, вы можете определить, хотите ли вы удалить его или сделать что-то еще.

Абсолютно вы можете. Помните, что removeClass и addClass в jQuery не нуждаются в точке. Правильный (и более простой) код будет:

$('.the-title.selected')
    .removeClass('selected')
    .siblings('.the-copy').css('display', 'block');

Предполагается, что.the-копия - это брат.the-title. Вы можете заменить это любой другой функцией обхода jquery dom

ДА

if ($(".the-title").is('.selected')) {
   $('.the-copy').show(); //does display -> block without animation
   $(".the-title").removeClass('selected');
}
Другие вопросы по тегам