2011-12-30 20 views

Respuesta

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

gracias, que funciona – simPod

+0

Meh - Llego tarde - +1 –

+0

Creo que @simPod es t Para seleccionar casos de '' en vez de ' ' –

11

Hay que seleccionar con el attribute starts with selector:

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

Salida my jsfiddle!

+0

['attribute-contains' selector] (http://api.jquery.com/attribute-contains-selector/), ya que el atributo' href' es * no * 'igual' a '#'. Además, la API establece, claramente, que el valor que se está evaluando *** debe *** ser citado. –

+0

gracias, funciona ahora – simPod

+0

@DavidThomas, Está tratando de seleccionar casos de '' no algo como ''. Además, gracias por señalar quoting = D. –

40

*= filtrará atributos que contienen la cadena dada en cualquier lugar

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

También tenga en cuenta que

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

seleccionará ningún tipo de anclaje cuya href comienza con un #

+0

Usted fue el único que agregó el atributo comienza con el selector, que resultó ser lo que realmente estaba pidiendo = D gj –

+0

Woot - gracias @Korvin :) –

+0

Pensé que mi pregunta es clara, pero es más sofisticada de lo que parecía : D – simPod

Cuestiones relacionadas