¿Cómo puede cambiar el href para un hipervínculo usando jQuery?
javascript
jquery
hyperlink
Brian Boatright
fuente
fuente
Respuestas:
Utilizando
modificará la href de todos los hipervínculos para apuntar a Google. Sin embargo, es probable que desee un selector algo más refinado. Por ejemplo, si tiene una combinación de etiquetas de anclaje de origen de enlace (hipervínculo) y destino de enlace (también conocido como "ancla"):
... Entonces probablemente no quieras agregarles
href
atributos accidentalmente . Por seguridad, entonces, podemos especificar que nuestro selector solo hará coincidir las<a>
etiquetas con unhref
atributo existente :Por supuesto, probablemente tengas algo más interesante en mente. Si desea hacer coincidir un ancla con una existente específica
href
, puede usar algo como esto:Esto encontrará enlaces donde
href
coincide exactamente con la cadenahttp://www.google.com/
. Una tarea más complicada podría ser la coincidencia y luego actualizar solo una parte dehref
:Los selecciona primera parte establece enlaces sólo donde el href comienza con
http://stackoverflow.com
. Luego, se define una función que utiliza una expresión regular simple para reemplazar esta parte de la URL con una nueva. Tenga en cuenta la flexibilidad que esto le brinda: cualquier tipo de modificación al enlace se podría hacer aquí.fuente
each
: ahora sería posible lo siguiente:$(selector).attr('href', function() { return this.replace(/.../, '...'); });
href
:...return this.href.replace(/.../, '...'); });
Con jQuery 1.6 y superior, debe usar:
La diferencia entre
prop
yattr
es queattr
toma el atributo HTML mientras queprop
toma la propiedad DOM.Puedes encontrar más detalles en esta publicación: .prop () vs .attr ()
fuente
prop
másattr
, para las personas que llegan a la pregunta y encuentran queattr
aparentemente funciona perfectamente bien en las nuevas versiones de jQuery ...prop
es más rápido queattr
porque actualiza el dom en lugar de modificar el HTML. jsfiddle.net/je4G5Use el
attr
método en su búsqueda. Puede cambiar cualquier atributo con un nuevo valor.fuente
Dependiendo de si desea cambiar todos los enlaces idénticos a otra cosa o si desea controlar solo los que están en una sección determinada de la página o cada uno individualmente, puede hacer uno de estos.
Cambie todos los enlaces a Google para que apunten a Google Maps:
Para cambiar los enlaces en una sección determinada, agregue la clase div del contenedor al selector. Este ejemplo cambiará el enlace de Google en el contenido, pero no en el pie de página:
Para cambiar enlaces individuales independientemente de dónde se encuentren en el documento, agregue una identificación al enlace y luego agregue esa identificación al selector. Este ejemplo cambiará el segundo enlace de Google en el contenido, pero no el primero o el del pie de página:
fuente
A pesar de que el OP solicitó explícitamente una respuesta jQuery, no necesita usar jQuery para todo en estos días.
Algunos métodos sin jQuery:
Si desea cambiar el
href
valor de todos los<a>
elementos, selecciónelos todos y luego repita la lista de nodos : (ejemplo)Si desea cambiar el
href
valor de todos los<a>
elementos que realmente tienen unhref
atributo, selecciónelos agregando el[href]
selector de atributos (a[href]
): (ejemplo)Si desea cambiar el
href
valor de los<a>
elementos que contienen un valor específico, por ejemplogoogle.com
, use el selector de atributosa[href*="google.com"]
: (ejemplo)Del mismo modo, también puede usar los otros selectores de atributos . Por ejemplo:
a[href$=".png"]
podría usarse para seleccionar<a>
elementos cuyohref
valor termine con.png
.a[href^="https://"]
podría usarse para seleccionar<a>
elementos conhref
valores con el prefijohttps://
.Si desea cambiar el
href
valor de los<a>
elementos que satisfacen múltiples condiciones: (ejemplo)..no hay necesidad de expresiones regulares, en la mayoría de los casos.
fuente
Este fragmento se invoca cuando se hace clic en un enlace de la clase 'menu_link', y muestra el texto y la URL del enlace. El retorno falso evita que se siga el enlace.
fuente
La forma simple de hacerlo es:
Función Attr (desde jQuery versión 1.0)
o
Función prop (desde jQuery versión 1.6)
Además, la ventaja de la forma anterior es que si el selector selecciona un solo ancla, actualizará ese ancla solamente y si el selector devuelve un grupo de ancla, actualizará el grupo específico a través de una sola declaración.
Ahora, hay muchas maneras de identificar el ancla o grupo de anclajes exactos:
Muy simples:
$("a")
$("a:eq(0)")
active
):$("a.active")
profileLink
ID de ejemplo ):$("a#proileLink")
$("a:first")
Más útiles:
$("[href]")
$("a[href='www.stackoverflow.com']")
$("a[href!='www.stackoverflow.com']")
$("a[href*='www.stackoverflow.com']")
$("a[href^='www.stackoverflow.com']")
$("a[href$='www.stackoverflow.com']")
Ahora, si desea modificar URL específicas, puede hacerlo como:
Por ejemplo, si desea agregar un sitio web proxy para todas las URL que van a google.com, puede implementarlo de la siguiente manera:
fuente
¡Deja de usar jQuery por el simple hecho de hacerlo! Esto es tan simple solo con JavaScript.
https://jsfiddle.net/bo77f8mg/1/
fuente
fuente
Cambiar el HREF de la imagen del logotipo de Wordpress Avada Theme
Si instala el complemento PHP ShortCode Exec, puede crear este Shortcode que llamé myjavascript
Ahora puede ir a Apariencia / Widgets y elegir una de las áreas de widgets de pie de página y usar un widget de texto para agregar el siguiente shortcode
El selector puede cambiar según la imagen que esté usando y si está lista para la retina, pero siempre puede resolverlo utilizando herramientas de desarrolladores.
fuente
href
en un atributo, para que pueda cambiarlo usando JavaScript puro, pero si ya tiene jQuery inyectado en su página, no se preocupe, lo mostraré en ambos sentidos:Imagina que tienes esto a
href
continuación:Y te gusta cambiarlo el enlace ...
Usando JavaScript puro sin ninguna biblioteca puedes hacer:
Pero también en jQuery puedes hacer:
o
En este caso, si ya ha inyectado jQuery, probablemente jQuery one se vea más corto y más cruzado ... pero aparte de eso, voy con el
JS
...fuente