51 votes

Comment ajouter dynamiquement des balises d'ancrage à un div en Javascript ?

Comment ajouter dynamiquement une liste d'hyperliens (avec leurs événements et propriétés) à un div en Javascript ?

102voto

danniel Points 505

Voici une alternative en Javascript pur :

var mydiv = document.getElementById("myDiv");
var aTag = document.createElement('a');
aTag.setAttribute('href',"yourlink.htm");
aTag.innerText = "link text";
mydiv.appendChild(aTag);

13voto

Håvard Points 5534

Je vous recommande d'utiliser jQuery pour cela, car cela rend le processus beaucoup plus facile. Voici quelques exemples utilisant jQuery :

$("div#id").append('<a href="' + url + '">' + text + '</a>');

Si vous avez besoin d'un liste bien que, comme dans un <ul> vous pouvez le faire :

$("div#id").append('<ul>');
var ul = $("div#id > ul");

ul.append('<li><a href="' + url + '">' + text + '</a></li>');

2voto

m4tt1mus Points 1091
var newA = document.createElement('a');
newA.setAttribute('href',"http://localhost");
newA.innerHTML = "link text";
document.appendChild(newA);

1voto

bensiu Points 6306
<script type="text/javascript" language="javascript">
function createDiv()
{
  var divTag = document.createElement("div");            
  divTag.innerHTML = "Div tag created using Javascript DOM dynamically";        
  document.body.appendChild(divTag);
}
</script>

-1voto

Master James Points 547

Une autre variation bien emballée où setAttribute n'est pas nécessaire.

Il y a 3 lignes qui ne seraient pas nécessaires si Wetfox pouvait sécher.

var saveAs = function (filename, content) {
    if(filename === undefined) filename = "Unknown.txt";
    if(content === undefined) content = "Empty?!";
    let link = document.createElement('a');
    link.style.display = "none"; // because Firefox sux
    document.body.appendChild(link); // because Firefox sux
    link.href = "data:application/octet-stream," + encodeURIComponent(content);
    link.download = filename;
    link.click();
    document.body.removeChild(link); // because Firefox sux
};

Merci pour votre aide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X