Как получить CSS-подкласс с селектором [att ~ = "val"] в jQuery - PullRequest
0 голосов
/ 23 февраля 2012

У меня возникают трудности с получением значения подкласса в элементе. Обычно я проверяю с помощью .hasClass или .attr("class") и затем сравниваю его, но я пытаюсь получить значение динамически генерируемого подкласса.

Допустим, у меня есть class="edit step1". Я должен получить только часть step1, но она не должна зависеть от числа в конце, так как это может быть что угодно. Я пробовал с .hasClass("~step") и некоторыми другими функциями, но без игры в кости.

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

Спасибо!

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Это не очень хорошее применение для классов, особенно потому, что они уже хранятся неструктурированным образом в атрибутах элемента. это было бы очень полезно для тегов "data-step".

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

$('div[class~=" step"]').each(function(){
    steps = this.attr('class').match(/\bstep\d+/);
})

Если вы застряли в этой неоптимальной ситуации, вышеприведенное может сработать

1 голос
/ 24 февраля 2012

.attr("class") вернет вам «edit step1».

Рассматривайте это как строку. Вы можете использовать .split(" "), чтобы превратить его в массив, затем вы можете просмотреть значения и оценить, что внутри.

...