2010-06-22 9 views
18

Sto cercando di trovare il primo collegamento della mia pagina che url si adatti a "AAA" (esempio).Come trovare un collegamento in una pagina in base al suo attributo href?

ho cerco di ottenere i legami con questo href:

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

Poi Selec la prima:

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

Poi bersaglio l'attributo title di questo legame

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

Ma tutto questo mi restituisce "indefinito", ad ogni passo. Come si fa?

Esempio di ancoraggio:

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

Puoi pubblicare un campione di una delle attuali tag ''? – Pointy

+0

@daviddarx Ho aggiunto l'esempio alla tua domanda. –

risposta

19

ne dite:

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

Poi dipende se si desidera che il href di essere uguale a 'AAA', lo contiene, inizia/termina con esso. In tal caso non si utilizzerà href= ma, ad esempio, href$=. Neil's answer contiene i diversi tipi di test che è possibile utilizzare.

Se potessi pubblicare il tuo codice HTML, sarebbe di aiuto.

+0

$ ("a [href = 'AAA']: first") funzionerebbe anche –

+0

@neil: vero, l'ho aggiunto alla mia risposta – marcgg

+0

Ci proverò, tornerò tra qualche minuto – daviddarx

3

Supponendo di disporre di un collegamento corrispondente (ad esempio, uno che termina con AAA).

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

dovrebbe funzionare.

Il motivo per cui si ottiene un numero indefinito per attr è che non è un oggetto jQuery dopo aver applicato l'indicizzatore al risultato della query, è l'elemento DOM effettivo. Per utilizzare attr, è necessario che sia ancora un oggetto jQuery. L'utilizzo del selettore :first riduce i risultati della query al primo corrispondente. Poiché attr restituirà il valore del primo attributo corrispondente, non è strettamente necessario, ma penso che renda l'intento più chiaro. Se si va ad impostare il valore dell'attributo, attr si applicherà a tutti gli elementi corrispondenti quindi, in quel caso, è importante - quindi lo userei in entrambi i posti per chiarezza.

+0

+1 - è vero, buon punto su '[0]' - questo è ciò che ha causato l'errore. ma '$ ('a [href $ =" AAA "]') [0] .attr (" title ");' va troppo lontano - non restituisce 'undefined', ma genera un'eccezione:" .attr è non una funzione " – Kobi

2

Il modo in cui lo hai scritto, stai cercando un href che termina con "AAA". È questo il tuo intento?

  • $= significa "finisce con"
  • ^= significa "inizia con"
  • ~= mezzi "contiene"

Riferimenti: jQuery Selectors

6

$('a[href$="AAA"]') dovrebbe funzionare bene, ma ricerche per href s che fine con AA UN.

Prova: $('a[href="AAA"]') - Uguale AAA
Oppure: $('a[href*="AAA"]') - Contiene AAA

Problemi correlati