Wählen Sie <a> aus, wobei href mit einer Zeichenfolge endet

669

Ist es möglich, mit jQuery alle <a>Links auszuwählen, deren href mit "ABC" endet?

Zum Beispiel, wenn ich diesen Link finden möchte <a href="http://server/page.aspx?id=ABC">

Aximili
quelle

Antworten:

1550
   $('a[href$="ABC"]')...

Die Selector-Dokumentation finden Sie unter http://docs.jquery.com/Selectors

Für Attribute:

= is exactly equal
!= is not equal
^= is starts with
$= is ends with
*= is contains
~= is contains word
|= is starts with prefix (i.e., |= "prefix" matches "prefix-...")
Tvanfosson
quelle
20
etwas hat sich kürzlich geändert. $ ('[href $ = - abc]') hat früher funktioniert. Jetzt sind Anführungszeichen erforderlich $ ('[href $ = "- abc"]') Ich weiß nicht, wann es sich geändert hat. Vielleicht sollte es immer Zitate erfordern und funktionierte gerade vorher.
Gman
12
Beachten Sie, dass bei "ABC" zwischen Groß- und Kleinschreibung unterschieden wird! (
Louis Somers
Wie man href bekommt enthält kein ABC in jquery
sf.dev
1
@ sf.dev$('a').filter(function() { return !this.href || !this.href.match(/ABC/); });
tvanfosson
9
Dies funktioniert jetzt mit Vanille-Javascirpt. Sie können einfach verwenden document.querySelectorAll('a[href$="ABC"]'), um dies zu erreichen.
K-Nuss
21
$('a[href$="ABC"]:first').attr('title');

Dies gibt den Titel des ersten Links zurück, dessen URL mit "ABC" endet.

Asche
quelle
4
Korrektur: Was mit ABC endet
Sparkyspider
Eigentlich gibt es einen kleinen Unterschied. Dadurch wird der erste Link mit der angegebenen href ausgewählt. Dies ist nützlich, wenn Sie nur einen ändern müssen.
Alekwisnia
15
$("a[href*='id=ABC']").addClass('active_jquery_menu');
Sumit
quelle
2
Für zukünftige Besucher, denen diese Antwort möglicherweise hilft.
sscirrus
@Sumit Beachten Sie, dass Ihre Antwort nur dann korrekt ist, wenn sich die OPs ABCzufällig auf eine ID beziehen.
sscirrus
6
$("a[href*=ABC]").addClass('selected');
Ganesh Anugu
quelle
2

Nur für den Fall, dass Sie keine große Bibliothek wie jQuery importieren möchten, um etwas so Triviales zu erreichen, können Sie querySelectorAllstattdessen die integrierte Methode verwenden. Fast alle für jQuery verwendeten Selektorzeichenfolgen funktionieren auch mit DOM-Methoden:

const anchors = document.querySelectorAll('a[href$="ABC"]');

Oder wenn Sie wissen, dass es nur ein passendes Element gibt:

const anchor = document.querySelector('a[href$="ABC"]');

Sie können die Anführungszeichen um den Attributwert im Allgemeinen weglassen, wenn der gesuchte Wert alphanumerisch ist, z. B. können Sie ihn auch hier verwenden

a[href$=ABC]

Angebote sind jedoch flexibler und im Allgemeinen zuverlässiger .

Bestimmte Leistung
quelle