Cómo cambiar el atributo href de un hipervínculo usando jQuery
¿Cómo se puede cambiar el href
atributo (destino del enlace) de un hipervínculo usando jQuery?
Usando
$("a").attr("href", "http://www.google.com/")
modificará el href de todos los hipervínculos para que apunten a Google. Probablemente quieras un selector algo más refinado. Por ejemplo, si tiene una combinación de etiquetas de anclaje de origen del enlace (hipervínculo) y destino del enlace (también conocido como "ancla"):
<a name="MyLinks"></a>
<a href="http://www.codeproject.com/">The CodeProject</a>
... Entonces probablemente no quieras agregarles href
atributos accidentalmente. Entonces, por seguridad, podemos especificar que nuestro selector solo haga coincidir etiquetas con un atributo <a>
existente :href
$("a[href]") //...
Por supuesto, probablemente tengas algo más interesante en mente. Si desea hacer coincidir un ancla con un existente específico href
, puede usar algo como esto:
$("a[href='http://www.google.com/']").attr('href', 'http://www.live.com/')
Esto encontrará enlaces donde href
coincida exactamente con la cadena http://www.google.com/
. Una tarea más complicada podría ser hacer coincidir y luego actualizar solo una parte de href
:
$("a[href^='http://stackoverflow.com']")
.each(function()
{
this.href = this.href.replace(/^http:\/\/beta\.stackoverflow\.com/,
"http://stackoverflow.com");
});
La primera parte selecciona solo enlaces donde comienza href http://stackoverflow.com
. Luego, se define una función que utiliza una expresión regular simple para reemplazar esta parte de la URL por una nueva. Tenga en cuenta la flexibilidad que esto le brinda: cualquier tipo de modificación del enlace se puede realizar aquí.
Con jQuery 1.6 y superior debes usar:
$("a").prop("href", "http://www.jakcms.com")
La diferencia entre prop
y attr
es que attr
toma el atributo HTML mientras que prop
toma la propiedad DOM.
Puede encontrar más detalles en esta publicación: .prop() vs .attr()
Utilice el attr
método en su búsqueda. Puede cambiar cualquier atributo con un nuevo valor.
$("a.mylink").attr("href", "http://cupcream.com");