30

I tried to use this jQuery selector:

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

but it doesn't seem to work. I would like to select all tags which have anchor in href attribute (has # symbol there)

simPod
  • 9,473
  • 15
  • 78
  • 121

3 Answers3

68
$("a[href*=#]").click(function(e) {
    e.preventDefault();
    alert('works');
});  
epignosisx
  • 6,062
  • 2
  • 29
  • 31
50

*= will filter attributes that contain the given string anywhere

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

Also note that

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

will select any anchor whose href starts with a #

Adam Rackis
  • 81,646
  • 52
  • 262
  • 388
18

You've got to select using the attribute starts with selector:

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

Check out my jsfiddle!

Korvin Szanto
  • 4,502
  • 4
  • 18
  • 49