Was ich tun muss, ist alle Elemente auf der Seite zu finden die "tag" in der Eigenschaft href enthalten und der Text des Elements enthält ein bestimmtes Wort.
Zum Beispiel
%Vor%Ich weiß, ich kann alle Elemente mit einem Tag in der href wie folgt erhalten:
%Vor%Ich finde auch alle Elemente mit "Autos" im Text so:
%Vor%Aber wie kombiniere ich diese beiden Bedingungen zu einer einzigen Aussage, die besagt: Finde alle Elemente, die 'tag' in der href enthalten und 'cars' im Text enthalten?
Wie die anderen Leute sagten, oder, wenn die beiden Bedingungen separat angewendet werden müssen, mit anderem Code dazwischen, dann ...
%Vor%dann später ...
%Vor% .filter()
ist die verallgemeinerte Methode zum Reduzieren einer vorhandenen jQuery-Auswahl.
Wie viele andere jQuery-Methoden gibt .filter()
ein jQuery-Objekt zurück, so dass es eine Kette bildet:
.filter()
ist auch gut aus Gründen, die ich nicht erklären wollte, und ich brauche das nicht, weil @ bažmegakapa dies gerade sehr eloquent getan hat.
Die anderen Antworten zeigen schöne und funktionierende Beispiele. Aber es gibt eine interessante Eigenart hier, die Unterscheidung zwischen nativen CSS-Selektoren (die auch vom nativen querySelectorAll()
unterstützt werden). ) und Selektoren, die von jQuery definiert werden .
Das Mischen ist möglicherweise kein Glück, denn dann kann die viel schnellere native Engine nicht verwendet werden. Zum Beispiel auf :has()
der Status der jQuery-Dokumentation:
Weil: has () eine jQuery-Erweiterung und nicht Teil des CSS ist Spezifikation, Abfragen mit: has () kann den Vorteil nicht ausnutzen Leistungssteigerung durch das native DOM querySelectorAll () Methode.
Aus diesem Grund sollten Sie besser mit der nativen Methode abfragen und dann filtern , indem Sie jQuery-spezifische Selektoren verwenden:
%Vor%Tags und Links jquery jquery-selectors dom-traversal