66

I have this selector below where it ignores any li with the class show-all-boxes

$('.boxes li:not([class="show-all-boxes"]) input:checkbox')

What is the best way of adding multiple classes to be ignored by the selector? An example of this that I thought would work but it doesn't is:

$('.boxes li:not([class="show-all-boxes, show-all-circles, show-all-triangles"]) input:checkbox')
Christofer Eliasson
  • 32,939
  • 7
  • 74
  • 103
Cecil Theodore
  • 9,549
  • 10
  • 31
  • 37

2 Answers2

114

The :not selector can take multiple CSS selectors as arguments ( http://api.jquery.com/not-selector ). E.g.

$('div:not(.a,.b)').empty()

http://jsfiddle.net/HFfcP/

Thong Kuah
  • 3,263
  • 2
  • 19
  • 29
  • no problem Cecil. btw, your second code was not working because it seems to trying to match on all `li`s that do not have the class "show-all-boxes, show-all-circles, show-all-triangles" (commas and all). http://jsfiddle.net/56uKS/ – Thong Kuah Jan 02 '12 at 10:10
6

try this :

$('.boxes li').not(".show-all-boxes, .show-all-circles, .show-all-triangles").find('input:checkbox')
redmoon7777
  • 4,498
  • 1
  • 24
  • 26