JQuery найти элемент по определенному классу, когда элемент имеет несколько классов - PullRequest
26 голосов
/ 28 сентября 2011

Так что я работаю над тем, что не было хорошо продумано в сборке из бэкэнд-команды.Это оставляет меня с документом, полным divs.

То, что я делаю, - это откат от элемента, на котором мне нужно щелкнуть, получить родительский контейнер, затем найти внутри родительского элемента элемент, имеющий class="alert-box warn", class="alert-box dead" и т. Д. По сути, япытаюсь использовать несколько селекторов классов на каждом элементе.Когда я пытаюсь найти только alert-box, кажется, что он работает неправильно.Я предполагаю, потому что он имеет warn, мертвых, `` хорошо, и т.д ...

Как я могу найти просто alert-box* или эквивалентный подстановочный знак концепции?

Ответы [ 5 ]

58 голосов
/ 28 сентября 2011

Вы можете комбинировать селекторы следующим образом:

$(".alert-box.warn, .alert-box.dead");

Или, если вы хотите использовать подстановочный знак, используйте селектор с атрибутом

$("[class*='alert-box']");

Примечание.знать тип элемента или тег при использовании селекторов выше.Знание тега может сделать селектор более эффективным.

$("div.alert-box.warn, div.alert-box.dead");
$("div[class*='alert-box']");
8 голосов
/ 28 сентября 2011

Вы можете выбрать элементы с несколькими классами, например, так:

$("element.firstClass.anotherClass");

Просто цепочка следующего класса на первый, без пробела (пробелы означают «потомки»).

5 голосов
/ 28 сентября 2011
var divs = $("div[class*='alert-box']");
3 голосов
/ 28 сентября 2011

Элемент может иметь любое количество classNames, однако он может иметь только один атрибут класса; jQuery будет читать только первое.

Используя код, который вы разместили, $(".alert-box.warn") будет работать, но $(".alert-box.dead") не будет.

0 голосов
/ 28 сентября 2011

вы ищете http://api.jquery.com/hasClass/

<div id="mydiv" class="foo bar"></div>

$('#mydiv').hasClass('foo') //returns ture
...