2015-04-04 5 views
0

Я хочу выбрать значение второго класса с помощью jquery. Например; Выберите имя класса div с jquery

<div class="mb-20"></div> 

Как я могу получить "20" значение после того, как от "mb-"?

+1

Там нет «второго» значения класса, это единственное имя класс – adeneo

+1

Если вы хотите целевые каждый элемент с классом, который заканчивается '20', вы можете сделать' $ ('[класс $ = «20»] ') ' – adeneo

+2

Вы разбираете« 20 »из строки« mb-20 ». Как вы определяете свой шаблон для анализа значения, зависит от вас. Вы можете разделить строку на «-» и взять второй индекс или последний индекс. Вы можете заменить «mb-» на ничего. Вы можете взять подстроку, начинающуюся с индекса 3. И т. Д. У вас есть строка. То, что вы хотите, является частью этой строки. Определите шаблон, который дает вам эту часть, и реализуйте это. – David

ответ

0

Если вы уже выбрали div, вы можете перебирать его классы и разбивать каждый класс на дефис. Что-то вроде ...

$.each($('div').attr('class').split(/s+/), function(idx, val) { 
    var parts = val.split('-'); 
    var classBase = parts[0]; 
    var classModifier = parts.length > 1 ? parts[1] : null; 

    if(classModifier !== null) alert("found class modifier" + classModifier); 
}); 
1

Здесь образец того, что вам нужно, чтобы проиллюстрировать это, я сделал это, когда вы нажимаете div.

// The selector just get all class starting with mb 
$('[class^="mb"]').on('click', function() { 
    alert($(this).attr('class').split('-')[1]); 
}); 

А вот FIDDLE

+1

Большое спасибо за вашу помощь. Существует только проблема, когда вы добавляете более класс, и он тоже принимает его; https://jsfiddle.net/hfezwfqj/1/ – kront

0

Если div s имеют более чем один класс, вы можете сделать это:

$('[class^="mb"]').on('click', function() { 
    alert($(this).attr('class').split(' ')[0].split('-')[1]); 
}); 

Это позволит получить первый класс элемента первого, второй, разделите его на - и верните номер.

Here is the updated Gonzalo Bahamondez's fiddle.

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