Como posso adicionar o href
atributo a um link dinamicamente usando JavaScript?
Basicamente, quero adicionar um href
atributo para <a></a>
dinamicamente (ou seja, quando o usuário clica em uma imagem específica no site).
Então, de:
<a>Link</a>
Preciso ir para:
<a href="somelink url">Link</a>
javascript
html
Pavel
fonte
fonte
setAttribute
). Alguém sabe se essa abordagem é padrão?HTMLLinkElement
quais suportam a configuração de certos campos, comohref
. Você tem que olhar a referência para ver qual você pode usar sem precisarsetAttribute
. Outro exemplo é o<table>
elemento ( HTMLTableElement ) onde você pode usarinsertRow()
para inserir novas linhas sem ter que criar o<tr>
e anexá-lo à tabela.setAttribute()
egetAttribute()
, que são quebrados no IE e nem sempre fazem o que você espera. Consulte stackoverflow.com/questions/4456231/…Presumo que você saiba como obter o objeto DOM para o
<a>
elemento (usedocument.getElementById
ou algum outro método).Para adicionar qualquer atributo, basta usar o método setAttribute no objeto DOM:
fonte
setAttribute
é claramente o padrão ( w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082 ), e o W3C não define nenhum atributo para o qual não funciona. Por outro lado, posso garantir que o uso da propriedade falhará para determinados nomes de atributos. ComotagName
, esetAttribute
- esses já são campos / métodos da interface do Elemento. Não vejo nenhum lugar no documento W3C que mencione propriedades para atributos.tagName
. Você está falando sobre atributos personalizados?getAttribute
esetAttribute
;"tagName"
é um exemplo de atributo que não pode funcionar como propriedade. Apenas ao trabalhar com HTML e para determinados atributos definidos na especificação HTML do DOM, você pode usar as propriedades para ler e atribuir atributos.tagName
é uma propriedade deElement
objetos em JavaScript, em HTML e XML DOMs, e você não pode obter o nome da tag de um elemento viagetAttribute("tagName")
(exceto no IE, cuja implementação degetAttribute()
esetAttribute()
está quebrada), o que parece exatamente o oposto do que você está dizendo.Primeiro, tente mudar
<a>Link</a>
para<span id=test><a>Link</a></span>
.Em seguida, adicione algo assim na função javascript que você está chamando:
Dessa forma, o link ficará assim:
fonte
href
a uma tag existentea
( basicamente, quero adicionar um atributo href a <a> </a> dinamicamente ). No entanto, essa resposta parece explicar como criar umaa
tag com umhref
.Eu sei que esta é uma postagem antiga, mas aqui está uma linha que pode ser mais adequada para algumas pessoas.
fonte