Ich versuche, seitenweite Links zu finden, die nicht mit einem '#' beginnen und kein Inline-Javascript enthalten, aber ich habe Probleme, herauszufinden, wie der Selektor richtig strukturiert werden kann.
Basierend auf dem, was ich über mehrere Selektoren gegoogelt habe, sollte dies funktionieren. Beide Selektoren arbeiten unabhängig voneinander, nur nicht zusammen!
$('a:not([href*=javascript]), a:not([href^=#])')
.each(function(){...
jquery
jquery-selectors
Hill79
quelle
quelle
Antworten:
Versuchen Sie es mit
$('a:not([href*=javascript]):not([href^=#])') ...
quelle
$('a:not([href*=javascript],[href^=#])')
Sie könnten auch versuchen:
$('a').not('[href^=#],[href*=javascript]')
quelle
$('a').not(selOne + ',' + selTwo + ',' + selX);
:not
eher als.not()
übrigens verwenden. siehe stackoverflow.com/questions/8845811/…Wie in jQuery - Multiple Selectors in a angegeben: not ()? Dies ist der richtige Weg, um dies zu tun:
$( 'a:not([href*=javascript],[href^=#])' )
Vergessen Sie nicht, Kommas in Anführungszeichen zu setzen, wenn Sie bereits über Selektoren verfügen, die Sie in Variablen negieren können
var selOne = '[href*=javascript]'; var selTwo = '[href^=#]'; $('a:not(' + selOne + ',' + selTwo + ')')
Ich gebe zu, dass der Code etwas verwirrend wird, aber es hat einen Vorteil, Sie können Dinge wie diese tun:
var selOne = '[href*=javascript], [href^=#]'; var selTwo = '.anotherSelector, .andAnother, .andSoOn'; $('a:not(' + selOne + ',' + selTwo + ')')
Dies ist immer dann nützlich, wenn Sie aus irgendeinem Grund Selektoren gruppieren müssen, z. Verwenden derselben Selektorgruppe an einer anderen Stelle im Code.
Ein Live-Beispiel mit derselben Technik
$('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>
Auch auf http://jsfiddle.net/bmL8gz5j/
:not
vs.not()
: Aus Performance - Gründen sollten Sie:not
statt.not()
finden Performance - Unterschiede zwischen der Verwendung von „: nicht“ und „.not ()“ Wähler?quelle