Comment puis-je ajouter l' href
attribut à un lien de manière dynamique à l'aide de JavaScript?
Je veux essentiellement ajouter un href
attribut à <a></a>
dynamiquement (c'est-à-dire lorsque l'utilisateur clique sur une image spécifique dans le site Web).
Donc de:
<a>Link</a>
J'ai besoin d'aller à:
<a href="somelink url">Link</a>
javascript
html
Pavel
la source
la source
setAttribute
). Quelqu'un sait-il si cette approche est standard?HTMLLinkElement
lesquelles prend en charge la définition de certains champs tels quehref
. Vous devez regarder dans la référence pour voir laquelle vous pouvez utiliser sans avoir à le fairesetAttribute
. Un autre exemple est l'<table>
élément ( HTMLTableElement ) où vous pouvez utiliserinsertRow()
pour insérer de nouvelles lignes sans avoir à créer<tr>
et à l'ajouter à la table.setAttribute()
etgetAttribute()
, qui sont cassées dans IE et ne font pas toujours ce que vous pourriez attendre. Voir stackoverflow.com/questions/4456231/…Je suppose que vous savez comment obtenir l'objet DOM pour l'
<a>
élément (utilisezdocument.getElementById
ou une autre méthode).Pour ajouter un attribut, utilisez simplement le méthode setAttribute sur l'objet DOM:
la source
setAttribute
c'est clairement la norme ( w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082 ), et le W3C ne définit aucun attribut pour lequel il ne fonctionne pas. Inversement, je peux garantir que l'utilisation de la propriété échouera pour certains noms d'attributs. Tels quetagName
, etsetAttribute
- ce sont déjà des champs / méthodes de l'interface Element. Je ne vois nulle part dans le document W3C qui mentionne les propriétés des attributs.tagName
. Parlez-vous d'attributs personnalisés?getAttribute
etsetAttribute
;"tagName"
est un exemple d'attribut qui ne peut pas fonctionner en tant que propriété. Ce n'est que lorsque vous travaillez avec HTML et pour certains attributs définis dans la spécification HTML DOM que vous pouvez utiliser les propriétés pour lire et attribuer des attributs.tagName
est une propriété d'Element
objets en JavaScript, à la fois dans les DOM HTML et XML, et vous ne pouvez pas obtenir le nom de la balise d'un élément viagetAttribute("tagName")
(sauf dans IE, dont l'implémentation degetAttribute()
etsetAttribute()
est cassée), ce qui semble exactement le contraire de ce que vous dites.Tout d'abord, essayez de passer
<a>Link</a>
à<span id=test><a>Link</a></span>
.Ensuite, ajoutez quelque chose comme ça dans la fonction javascript que vous appelez:
De cette façon, le lien ressemblera à ceci:
la source
href
à une balise existantea
( je veux essentiellement ajouter un attribut href à <a> </a> de manière dynamique ). Cependant, cette réponse semble expliquer comment créer unea
balise avec unhref
.Je sais que c'est un ancien article, mais voici un one-liner qui pourrait être plus approprié pour certaines personnes.
la source