jQuery-Selektor für Links mit # im href-Attribut

Lesezeit: 2 Minuten

Ich habe versucht, diesen jQuery-Selektor zu verwenden:

$("a:has(href*=#)").click(function() {
     alert('works');
});  

aber es scheint nicht zu funktionieren. Ich möchte alle Tags auswählen, die einen Anker im href-Attribut haben (hat dort ein #-Symbol)

$("a[href*=#]").click(function(e) {
    e.preventDefault();
    alert('works');
});  

  • Ich glaube, @simPod versucht, Fälle von auszuwählen <a href='#'> statt <a href='link.com/page/#hash'>

    – Korvin Szanto

    30. Dezember 2011 um 19:28 Uhr

  • @KorvinSzanto Wenn das der Fall ist, ist Ihre Antwort richtig.

    – Epignosisx

    30. Dezember 2011 um 19:31 Uhr

  • Nach der Klarstellung von @simPod lagen wir beide falsch! Er möchte http://api.jquery.com/attribute-starts-with-selector/

    – Korvin Szanto

    30. Dezember 2011 um 19:32 Uhr

  • Zitate! Ich hatte dort fehlende Anführungszeichen!

    – simPod

    30. Dezember 2011 um 19:43 Uhr

  • Es funktioniert in manchen Situationen nicht. Sie sollten dem entkommen # so was: $('a[href*=\\#]') wenn es zuverlässiger sein soll. stackoverflow.com/a/18365991/553921

    – Lurk

    1. Dezember 2016 um 16:52 Uhr


*= filtert Attribute, die die angegebene Zeichenfolge irgendwo enthalten

$("a[href*='#']").click(function() {
    alert('works');
});

Beachte das auch

$("a[href^='#']").click(function() {
    alert('works');
});

wählt jeden Anker aus, dessen href beginnt mit a #

  • Sie waren der einzige, der das Attribut beginnt mit Selektor hinzugefügt hat, was zufällig das war, wonach er wirklich gefragt hat =D gj

    – Korvin Szanto

    30. Dezember 2011 um 19:33 Uhr

  • Ich dachte, meine Frage ist klar, aber sie ist raffinierter, als es schien: D

    – simPod

    30. Dezember 2011 um 19:48 Uhr

  • Hehe – oft hat jQuery Lösungen, die einfacher sind, als Sie für möglich gehalten haben 🙂

    – Adam Rackis

    30. Dezember 2011 um 19:49 Uhr

  • Danke für ^= Selektor, das ist der, den ich zu finden versucht habe!

    – Calvinf

    2. April 2014 um 23:37 Uhr

Benutzer-Avatar
Korvin Szanto

Sie müssen mit auswählen Attribut beginnt mit Selektor:

$('a[href^="#"]').click(function(){
    alert('Works!');
});

Kasse meine jsfiddle!

  • attribute-contains Wählerals die href Attribut ist nicht ‘gleicht #. Auch die API sagt eindeutig aus, dass der Wert bewertet wird muss zitiert werden.

    – David Thomas

    30. Dezember 2011 um 19:22 Uhr


  • @DavidThomas, er versucht, Fälle von auszuwählen <a href='#'> nicht so etwas <a href='index.php#header'>. Danke auch für den Hinweis auf das Zitat =D.

    – Korvin Szanto

    30. Dezember 2011 um 19:24 Uhr


  • Eigentlich muss ich auswählen #header und die Art und Weise, wie ich mir ausgedacht habe, war, alles auszuwählen <a> mit # in href

    – simPod

    30. Dezember 2011 um 19:27 Uhr

  • In diesem Fall möchten Sie $('a[href=^"#"]') um zu verhindern, dass hrefs wie ausgewählt werden http://en.wikipedia.org/wiki/Random#A_number_is_.22due.22 Meine Antwort aktualisiert!

    – Korvin Szanto

    30. Dezember 2011 um 19:30 Uhr


  • @KorvinSzanto deine Geige funktioniert, aber der Code hier hat einen kleinen Tippfehler, der ^ Zeichen sollte vor dem Gleichheitszeichen stehen

    – Chodorowicz

    5. November 2014 um 8:20 Uhr

1180520cookie-checkjQuery-Selektor für Links mit # im href-Attribut

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy