Cómo cambiar el atributo href de un hipervínculo usando jQuery

Resuelto Brian Boatright asked hace 16 años • 13 respuestas

¿Cómo se puede cambiar el hrefatributo (destino del enlace) de un hipervínculo usando jQuery?

Brian Boatright avatar Oct 08 '08 01:10 Brian Boatright
Aceptado

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 hrefatributos 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 hrefcoincida 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í.

Shog9 avatar Oct 07 '2008 18:10 Shog9

Con jQuery 1.6 y superior debes usar:

$("a").prop("href", "http://www.jakcms.com")

La diferencia entre propy attres que attrtoma el atributo HTML mientras que proptoma la propiedad DOM.

Puede encontrar más detalles en esta publicación: .prop() vs .attr()

Jerome avatar Jun 14 '2011 18:06 Jerome

Utilice el attrmétodo en su búsqueda. Puede cambiar cualquier atributo con un nuevo valor.

$("a.mylink").attr("href", "http://cupcream.com");
Peter Shinners avatar Oct 07 '2008 18:10 Peter Shinners