Как указано в jQuery - множественные селекторы в a: not ()? , это правильный способ сделать это:
$( 'a:not([href*=javascript],[href^=#])' )
Не забудьтеставьте кавычки вокруг запятых, если у вас уже есть селекторы для отрицания в переменных
var selOne = '[href*=javascript]';
var selTwo = '[href^=#]';
$('a:not(' + selOne + ',' + selTwo + ')')
Я допускаю, что код немного запутан, но у него есть преимущество, вы можете делать такие вещи, как это:
var selOne = '[href*=javascript], [href^=#]';
var selTwo = '.anotherSelector, .andAnother, .andSoOn';
$('a:not(' + selOne + ',' + selTwo + ')')
Это полезно, когда вам нужно по какой-то причине сгруппировать селекторы, т.е.используя ту же группу селекторов где-то еще в коде.
Живой пример, использующий ту же технику
$('div:not(.rose-flower,.bus-vehicle)').css('color','red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="bus-vehicle">I am a bus</div>
<div class="strawberry-fruit">I am a strawberry</div>
<div class="rose-flower">I am a rose</div>
Также на http://jsfiddle.net/bmL8gz5j/
:not
против .not()
: из соображений производительности следует использовать :not
вместо .not()
, см. Различия в производительности между использованием селекторов ": not" и ".not ()"?