Jquery найти элемент по определенному классу, когда элемент имеет несколько классов
Итак, я работаю над тем, что не было хорошо продумано в сборке из бэкэнд-команды. Это оставляет мне документ, полный divs.
То, что я делаю, - это откат от элемента, который мне нужен, чтобы получить родительский контейнер, затем найдите элемент внутри родителя, который имеет class="alert-box warn"
, class="alert-box dead"
и т.д.... По сути, я пытаюсь для использования нескольких селекторов классов для каждого элемента. Когда я пытаюсь найти только alert-box
, похоже, что он работает неправильно. Я предполагаю, что он имеет warn,
dead, `fine и т.д....
Как я могу найти только alert-box*
или эквивалент концепции подстановочных знаков?
Ответы
Ответ 1
Вы можете комбинировать селектора типа
$(".alert-box.warn, .alert-box.dead");
Или если вы хотите, чтобы подстановочный знак использовал атрибут - содержит селектор
$("[class*='alert-box']");
Примечание. Предпочтительно вы должны знать тип элемента или тег при использовании селекторов выше. Знание тега может сделать селектор более эффективным.
$("div.alert-box.warn, div.alert-box.dead");
$("div[class*='alert-box']");
Ответ 2
Вы можете выбрать элементы с несколькими классами:
$("element.firstClass.anotherClass");
Просто соедините следующий класс с первым, без пробела (пробелы означают "дети из" ).
Ответ 3
var divs = $("div[class*='alert-box']");
Ответ 4
Элемент может иметь любое количество имен классов, однако он может иметь только один атрибут класса; только первый из них будет прочитан jQuery.
Используя код, который вы опубликовали, $(".alert-box.warn")
будет работать, но $(".alert-box.dead")
не будет.
Ответ 5
вы ищете http://api.jquery.com/hasClass/
<div id="mydiv" class="foo bar"></div>
$('#mydiv').hasClass('foo') //returns ture