2011-04-13 15 views
9

Tengo un vínculo que no es:filtro de jQuery: contiene un enlace (a href = "#")

a href="#" 

pero pronto el cliente va a cambiar el enlace a

a href="something" 

Cuando el enlace se convierte en algo que me gustaría usar jQuery para cambiar el CSS, pero no estoy seguro de cómo escribir un filtro para un atributo (href = "") ...

Respuesta

14

Aquí hay un selector para un ancla con un href no es igual al hash:

$('a[href!="#"]') 
+2

+1. Me perdí el punto de que OP quiere hacer una búsqueda negativa. – Chandu

+0

NP, todos hacemos eso a veces :) – Eli

+0

buena idea ............. –

18

Aquí hay dos opciones que se pueden utilizar para comparar su href atributo:

Href está vacía:

$('a[href=""]') or $('a[href="#"]') 

Href no está vacío:

$('a[href!=""]') or $('a[href!="#"]') 

Al comparar atributos, jQuery ofrece varios operadores de comparaciones:

= Is Equal 
!= Is Not Equal 
^= Starts With 
$= Ends With 
*= Contains 

More on jQuery Selectors here.

+1

+1 Gracias, necesitaba Contiene pero no recuerdo la sintaxis –

+0

¡Muchas gracias! ¡Totalmente me olvidé de esos varios operadores de comparación! –

1

Una lectura rápida de los selectores de jQuery debe hacer el truco (como se mencionado por Rionmonster arriba). Sólo me gustaría tener en cuenta que también se puede comprobar si hay elementos con un atributo específico (que espero que usted realmente necesita?) Haciendo algo como

$('a[href]') 

Esto encuentra <a> elementos que tienen un atributo definido href , ya sea un hash o cualquier otra cosa. Bueno para filtrar anclajes clicables.