2011-04-01 19 views
72

¿Alguien sabe cómo puedo obtener el href del enlace cliqueado con jquery? Tengo el enlace de la siguiente manera:¿Cómo obtener el href del enlace cliqueado con jquery?

<a href="ID=1" class="testClick">Test1.</a> 
    <br /> 
    <a href="ID=2" class="testClick">Test2.</a> 
    <br /> 
    <a href="ID=3" class="testClick">Test3.</a> 

me escribió un código de la siguiente manera para obtener el valor href del enlace que he hecho clic en. Pero de alguna manera esto siempre me devuelve el href del primer enlace (ID = 1) aunque hice clic en Test2 o Test3. ¿Alguien sabe qué está pasando aquí? y ¿cómo puedo resolver este problema?

$(".testClick").click(function() { 
     var value = $(".testClick").attr("href"); 
     alert(value); 
    }); 

Respuesta

133

este en su función de devolución de llamada se refiere al elemento se ha hecho clic.

$(".addressClick").click(function() { 
     var addressValue = $(this).attr("href"); 
     alert(addressValue); 
    }); 
+16

O uno puede acceder a él directamente en lugar de crear un objeto jQuery. 'var addressValue = this.href;' – Chris

+0

FYI, si el href es relativo 'href =" sibling_file.htm "', entonces $ (this) .attr ("href") devuelve 'sibling_file.htm' y this.href devuelve' https: // example.com/folder/sibling_file.htm' (que es lo que esperaba y quería). – Redzarf

12

Usted está buscando $(this).attr("href");

8
$(".testClick").click(function() { 
     var value = $(this).attr("href"); 
     alert(value);  
}); 

Cuando se utiliza $ ("className") que está recibiendo el conjunto de todos los elementos que tienen esa clase. Luego, cuando llame a attr, simplemente devuelve el valor del primer elemento de la colección.

0

Supongamos que tenemos tres etiquetas de anclaje como,

<a href="ID=1" class="testClick">Test1.</a> 
<br /> 
<a href="ID=2" class="testClick">Test2.</a> 
<br /> 
<a href="ID=3" class="testClick">Test3.</a> 

ahora en escritura

$(".testClick").click(function() { 
     var anchorValue= $(this).attr("href"); 
     alert(anchorValue); 
}); 

uso este palabra clave en lugar de className (testClick)

Cuestiones relacionadas