2015-08-18 2 views
1

Я пытаюсь написать селектор для querySelector, который будет включать divs класса «foo», но не «foo bar». Я не использую jQuery в этом проекте.Селектор javascript, который соответствует классу, за исключением других

<div class="foo">include me</div> 
<div class="foo">and me</div> 
<div class="foo bar">not me</div> 

Я пытался играть с :not(), но я не уверен в правильности синтаксиса, так как это не работает для меня

document.querySelectorAll('div.foo|*:not(.bar)'); 

Может кто-нибудь помочь?

+2

Просто отпустите '| *'. –

ответ

4

Это должно быть

document.querySelectorAll('div.foo:not(.bar)'); 

Это позволит выбрать все div элементы, имеющие class.foo и не .foo с .bar

Demo (Проверьте консоль для вывода)

+0

А, так близко ... спасибо =) – Dutts

+0

@Richard np, приветствую :) –

0

как о

document.querySelectorAll('div.foo:not(.bar)');