2010-06-22 15 views
18

Estoy tratando de encontrar el primer enlace de mi página que url encaja en "AAA" (ejemplo).¿Cómo encontrar un enlace en una página en función de su atributo href?

primera vez que tratar de conseguir los enlaces con este href:

$('a[href$="AAA"]') 

Entonces SELEC la primera:

$('a[href$="AAA"]')[0] 

continuación, destinar el atributo título de este enlace

$('a[href$="AAA"]')[0].attr("title"); 

Pero todo esto me devuelve "indefinido", en cada paso. ¿Cómo hacer eso?

Ejemplo de anclaje:

<a href="contents/medias/images/news/news_test_big.jpg" title="Nouvelle réalisation en ligne 1 FR" target="_blank" class="imageLink"> 
+0

Se puede publicar una muestra de uno de los '' etiquetas reales? – Pointy

+0

Aquí está uno de los enlaces: ¡Gracias ¨! – daviddarx

+0

@daviddarx He agregado el ejemplo a su pregunta. –

Respuesta

19

¿Qué tal:

$("a[href='AAA']").first().attr("title") 
// or 
$("a[href='AAA']:first").attr("title") 

Entonces depende de si desea que el href sea igual a 'AAA', que contiene, comienza/termina con él. En ese caso, no usaría href=, sino href$=, por ejemplo. Neil's answer contiene los diferentes tipos de pruebas que puede usar.

Si pudiera publicar su código HTML, ayudaría también.

+0

$ ("a [href = 'AAA']: primero") también funcionaría –

+0

@neil: cierto, lo agregué a mi respuesta – marcgg

+0

Voy a intentarlo, volveré en unos minutos – daviddarx

3

Suponiendo que tiene un enlace coincidente (es decir, uno que finaliza con AAA).

$('a[href="AAA"]:first').attr('title'); 

debería funcionar.

La razón por la que se está indefinido para attr es que no es un objeto jQuery después de aplicar el indexador al resultado de la consulta, es el elemento DOM real. Para usar attr, debe seguir siendo un objeto jQuery. El uso del selector :first reducirá los resultados de la consulta a la primera coincidencia. Dado que attr devolverá el valor del primer atributo coincidente, no es estrictamente necesario, pero creo que hace que el intento sea más claro. Si va a establecer el valor del atributo, attr se aplicará a todos los elementos coincidentes, por lo que, en ese caso, es importante; por lo tanto, lo usaría en ambos lugares para mayor claridad.

+0

+1 - eso es cierto, buen punto sobre '[0]' - eso es lo que causó el error. pero '$ ('a [href $ =" AAA "]') [0] .attr (" title ");' va demasiado lejos - no devuelve 'undefined', pero muestra una excepción:" .attr is no es una función " – Kobi

2

De la forma en que lo ha escrito, está buscando un href que termine con "AAA". ¿Esa es tu intención?

  • $= significa "termina con"
  • ^= medios "comienza con"
  • ~= medios "contiene"

Referencias: jQuery Selectors

6

$('a[href$="AAA"]') debería funcionar bien, pero searches para href s que final con AA A.

Probar: $('a[href="AAA"]') - Igual AAA
O: $('a[href*="AAA"]') - Contiene AAA

Cuestiones relacionadas