2015-05-08 3 views
1

Я попробовал несколько решений, но код по-прежнему не работает ...Как получить номер из имени класса в jquery?

Вот что я получил до сих пор:

$('.next-arrow').click(function(){ 
    var num = $(this).closest('[class^=step-]').match(/\d+/)[0]; 
    console.log(num); 
}); 

Если я запускаю его без .match() он прекрасно работает и говорит мне, что Я нахожусь в «step-1» в журнале консоли, но добавление .match() ничего не возвращает.

Что я пытаюсь сделать здесь, это проверить, где я нахожусь «шаг 1, шаг 2, ...» и назначить этот номер, чтобы скрыть текущий шаг и показать следующий шаг.

+0

JQuery не имеют 'матч)' метода (. – techfoobar

+0

Разбор названия класса - неправильный подход. Используйте индекс элемента или используйте обход DOM для отображения и скрытия элементов на основе их относительных позиций. – isherwood

+1

В качестве побочного примечания вы можете добиться этого более элегантно, используя атрибуты data. https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes –

ответ

1

Вы просто забыли взять класс найденного элемента вместо самого элемента: объекты

$('.next-arrow').click(function(){ 
    var num = $(this).closest('[class^=step-]').attr("class").match(/\d+/)[0]; 
    console.log(num); 
}); 
+0

Работал как шарм! Огромное спасибо!! – William

+1

@ Виллиам, тогда вы, возможно, захотите принять ответ, а не держать это повешение! –

+1

@Chaitanya Gadkari, я сделаю это, я жду только время охлаждения от stackoverflow, спасибо! – William

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