2015-02-23 7 views
0

Я хочу выбрать элементы, которые не увядают один из двух классов A или B. Я могу написать тот случай, когда элементы не имеют один классJQuery: выберите элементы, которые не имеют класса A или B

$(element).find("thead > tr.column-headers td:not(.A)"); 

$(element).find("thead > tr.column-headers td:not(.B)"); 

Но я хочу один селектор для не А и не В. Это не работает

$(element).find("thead > tr.column-headers td:not(.A) td:not(.B)"); 
+0

селектор, содержащий 'TD: нет (.A) TD: нет (.B)' попытки найти 'td' элемент, чей класс не А, то смотрит в пределах этого элемента, чтобы найти вторую' тд '* child *, чей класс не является B. –

+0

Следует отметить, что селектор': not' принимает также разделенный запятыми список, поэтому все, что вам нужно сделать, это просто добавить '.B' к первому' td: not (.A, .B) '-> http://jsfiddle.net/adeneo/L1x5x008/ – adeneo

+0

Обратите внимание, что поддержка списка разделенных запятыми ограничена jQuery, а не селекторами. Это недопустимо в CSS-селекторе. – Quentin

ответ

4

td:not(.A) td:not(.B) означает «td, который не является членом класса B и также является потомком другого td, который не является членом класса A».

Вам необходимо установить оба правила на того же элемента.

thead > tr.column-headers td:not(.A):not(.B) 
+1

это лучше мой человек –

3

Попробуйте

$(element).find("thead > tr.column-headers").not("td.A, td.B"); 
Смежные вопросы