Я пытаюсь настроить таргетинг на общестраничные ссылки, которые не начинаются с символа «#» и не включают встроенный javascript, но у меня возникают проблемы с тем, как правильно структурировать селектор.
Основываясь на том, что я искал в Google о нескольких селекторах, это должно сработать, оба селектора работают независимо, но не вместе!
$('a:not([href*=javascript]), a:not([href^=#])')
.each(function(){...
jquery
jquery-selectors
Hill79
источник
источник
Ответы:
Попробуйте использовать
$('a:not([href*=javascript]):not([href^=#])') ...
источник
$('a:not([href*=javascript],[href^=#])')
Вы также можете попробовать:
$('a').not('[href^=#],[href*=javascript]')
источник
$('a').not(selOne + ',' + selTwo + ',' + selX);
:not
а не.not()
между прочим, по соображениям производительности. см. stackoverflow.com/questions/8845811/…Как указано в jQuery - Несколько селекторов в: 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
vs.not()
: Из соображений производительности следует использовать,:not
а не.not()
, см. Различия в производительности между использованием селекторов ": not" и ".not ()"?источник