Como você pode alterar o href de um hiperlink usando o jQuery?
javascript
jquery
hyperlink
Brian Boatright
fonte
fonte
Respostas:
Usando
modificará o href de todos os hiperlinks para apontar para o Google. Você provavelmente quer um seletor um pouco mais refinado. Por exemplo, se você tiver uma combinação de tags de âncora de origem de link (hiperlink) e destino de link (também conhecida como "âncora"):
... Então você provavelmente não deseja adicionar acidentalmente
href
atributos a eles. Por segurança, podemos especificar que nosso seletor corresponderá apenas às<a>
tags com umhref
atributo existente :Claro, você provavelmente terá algo mais interessante em mente. Se você deseja combinar uma âncora com uma existente específica
href
, você pode usar algo como isto:Isso encontrará links onde
href
corresponde exatamente à stringhttp://www.google.com/
. Uma tarefa mais envolvida pode estar correspondendo e, em seguida, atualizando apenas parte dohref
:Os seleciona primeira parte mas apenas ligações onde a href começa com
http://stackoverflow.com
. Em seguida, é definida uma função que usa uma expressão regular simples para substituir esta parte da URL por uma nova. Observe a flexibilidade que isso oferece - qualquer tipo de modificação no link pode ser feita aqui.fonte
each
- o seguinte agora seria possível:$(selector).attr('href', function() { return this.replace(/.../, '...'); });
href
:...return this.href.replace(/.../, '...'); });
Com o jQuery 1.6 e superior, você deve usar:
A diferença entre
prop
eattr
é queattr
agarra o atributo HTML enquantoprop
agarra a propriedade DOM.Você pode encontrar mais detalhes neste post: .prop () vs .attr ()
fonte
prop
maisattr
seria apreciada, para as pessoas que chegam à pergunta eattr
prop
é mais rápido do queattr
porque atualiza o dom em vez de modificar o HTML. jsfiddle.net/je4G5Use o
attr
método em sua pesquisa. Você pode alternar qualquer atributo com um novo valor.fonte
Dependendo se você deseja alterar todos os links idênticos para outros itens ou se deseja controlar apenas os de uma determinada seção da página ou de cada um individualmente, você pode fazer um destes.
Altere todos os links para o Google para que eles apontem para o Google Maps:
Para alterar os links em uma determinada seção, adicione a classe da div do contêiner ao seletor. Este exemplo alterará o link do Google no conteúdo, mas não no rodapé:
Para alterar links individuais, independentemente de onde eles caem no documento, adicione um ID ao link e, em seguida, adicione esse ID ao seletor. Este exemplo altera o segundo link do Google no conteúdo, mas não o primeiro ou o rodapé:
fonte
Embora o OP tenha solicitado explicitamente uma resposta do jQuery, você não precisa usar o jQuery para tudo nos dias de hoje.
Alguns métodos sem jQuery:
Se você deseja alterar o
href
valor de todos os<a>
elementos, selecione todos eles e, em seguida, itere através do nodelist : (exemplo)Se você deseja alterar o
href
valor de todos os<a>
elementos que realmente possuem umhref
atributo, selecione-os adicionando o[href]
seletor de atributo (a[href]
): (exemplo)Se você deseja alterar o
href
valor dos<a>
elementos que contêm um valor específico, por exemplogoogle.com
, use o seletor de atributosa[href*="google.com"]
: (exemplo)Da mesma forma, você também pode usar os outros seletores de atributo . Por exemplo:
a[href$=".png"]
poderia ser usado para selecionar<a>
elementos cujohref
valor termina com.png
.a[href^="https://"]
Pode ser utilizado para seleccionar<a>
elementos comhref
valores que são prefixados comhttps://
.Se você deseja alterar o
href
valor dos<a>
elementos que atendem a várias condições: (exemplo)..no necessidade de regex, na maioria dos casos.
fonte
Esse trecho é chamado quando um link da classe 'menu_link' é clicado e mostra o texto e o URL do link. O retorno false impede que o link seja seguido.
fonte
A maneira simples de fazer isso é:
Função Attr (desde o jQuery versão 1.0)
ou
Função Prop (desde o jQuery versão 1.6)
Além disso, a vantagem da maneira acima é que, se o seletor selecionar uma única âncora, ele atualizará somente essa âncora e se o seletor retornar um grupo de âncoras, ele atualizará o grupo específico por meio de apenas uma instrução.
Agora, existem várias maneiras de identificar a âncora exata ou o grupo de âncoras:
Muito Simples:
$("a")
$("a:eq(0)")
active
):$("a.active")
profileLink
ID de exemplo ):$("a#proileLink")
$("a:first")
Mais úteis:
$("[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']")
Agora, se você deseja alterar URLs específicos, pode fazer isso da seguinte maneira:
Por exemplo, se você deseja adicionar um site proxy a todos os URLs que acessam google.com, é possível implementá-lo da seguinte maneira:
fonte
Pare de usar o jQuery apenas por isso! Isso é tão simples apenas com JavaScript.
https://jsfiddle.net/bo77f8mg/1/
fonte
fonte
Alterar o HREF da imagem do logotipo do tema Wordpress Avada
Se você instalar o plugin ShortCode Exec PHP, poderá criar este Shortcode que chamei de myjavascript
Agora você pode ir para Aparência / Widgets, escolher uma das áreas do widget de rodapé e usar um widget de texto para adicionar o seguinte código curto
O seletor pode mudar dependendo da imagem usada e da retina pronta, mas você sempre pode descobrir isso usando as ferramentas do desenvolvedor.
fonte
href
em um atributo, para que você possa alterá-lo usando JavaScript puro, mas se você já tiver o jQuery injetado em sua página, não se preocupe, mostrarei as duas maneiras:Imagine que você tem isso
href
abaixo:E você gosta de mudar o link ...
Usando JavaScript puro sem nenhuma biblioteca, você pode:
Mas também no jQuery você pode fazer:
ou
Nesse caso, se você já tiver o jQuery injetado, provavelmente o jQuery parecerá mais curto e mais entre navegadores ... mas, além disso, eu vou com o
JS
...fonte