11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je souhaite créer en javascript un élément équivalent au code HTML suivant :
<div id="postUl">&nsbp;</div>

Mais je n'y arrive pas.

Voici le script que j'espérais faire fonctionner :
newElement = document.createElement('div');
newElement.setAttribute('id', 'postUl');
newElement.appendChild(document.createTextNode(" "));
$("linklist").appendChild(newElement);



Mais le résultat, vu dans firebug (loué soit ce plugin) est : <div id="postUl"> </div> (l'espace est cet espace est ignoré).

Lorsque j'utilise la ligne de code :
newElement.appendChild(document.createTextNode("&nbsp;"));

La balise semble bien générée : <div id="postUl">&nbsp;</div>
Mais le &nbsp; n'est pas interprété et est affiché en toute lettre.

Est-ce quelqun voit une erreur que j'aurais faite ?

PS : J'utilise Prototype, l'appel $("linklist") est équivalent à document.getElementById("linklist")
Modifié par VilCoyot (21 May 2007 - 15:36)
Bonjour,
VilCoyot a écrit :
newElement.appendChild(document.createTextNode(" "));

Il faut insérer directement un espace non sécable à la place de l'espace, ou utiliser l'échappement Unicode d'EcmaScript :
newElement.appendChild(document.createTextNode("\u00a0"));
Ah. Oui en effet c'est un peu évident maintenant que tu le dis sauf que je ne savais pas qu'il existait un tel caractère directement accessible.

Merci !