2013-09-05 3 views
2

У меня есть элемент с несколькими классами в нем. Когда я нажимаю этот класс, мне нужно получить оставшуюся часть частичного класса как переменную.jQuery получить оставшееся значение частичного выбора класса

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

пример:

<span class="jump jump_toThis randomClass">Something</span> 

$('#tray').on('click', 'span.jump', function(e){ 
    var $this  = $(this), 
    classList = $this.attr('class'); 

    console.log(classList); 
    // Not sure how to remove *jump_* from *toThis* 
    // along with the other classes 

}); 

ответ

1

Попробуйте

$('#tray').on('click', 'span.jump', function (e) { 
    var className = this.className, 
     jumper = className.match(/\b(jump_.*?)\b/)[1]; 
    if (jumper) { 
     $(this).removeClass(jumper).addClass(jumper.replace(/^jump_/, '')) 
    } 
}); 

Демо: Fiddle

Если вы хочу сохранить только toThis как класс, то

$('#tray').on('click', 'span.jump', function (e) { 
    var className = this.className, 
     jumper = className.match(/\b(jump_.*?)\b/)[1]; 
    if (jumper) { 
     $(this).removeClass().addClass(jumper.replace(/^jump_/, '')) 
    } 
}); 

Демо: Fiddle

+0

Спасибо, это было творческое решение. Я немного изменил его, чтобы создать переменную, которая мне нужна, но отлично работает. Большое спасибо! –

Смежные вопросы