il faut avouer que cree du html dynamiquement c'est pas la joie ( syntaxe trop longue ) c'est pour ce motif que je me suis cree une petite fonction qui me rend plus faineant et qui simplifie grandement la creation d'un element et ses attribut le tout sur une seule ligne tout en ayant une bonne lisibilite
la fonction
creation(elem,parent)
dans cette exemple je cree un div dans le corp de la page qui a comme id div1 puis j'ajoute une image dans ce meme div les deux premiers etant reserver a preciser l'element a cree et ou le placer soit dans body soit dans getElementById('id de lelement')
creation('div','body','id','div1')
creation(img,'div1','id','img1','src','image.jpg')
++
Source / Exemple :
function creation(elem,parent){
var ddc=(arguments[1]=='body') ? document.documentElement.childNodes[1] : document.getElementById(parent)
var constrution=document.createElement(elem);
if((arguments.length>2)){
var arle=2
while (arle<arguments.length){
constrution.setAttribute(arguments[arle],arguments[arle+1]);
arle+=2
}
}
ddc.appendChild(constrution)
}
function createxte(parent,txt){
document.getElementById(parent).appendChild(document.createTextNode(txt));
}
Conclusion :
en esperant que sa puisse etre utile a d'autre que mois
Commentaires
if((arguments.length>2)){
var arle=2
while (arle<arguments.length){
constrution.[arguments[arle]] = arguments[arle+1]);
arle+=2
}
}
Ps: tu devrais permettre la sélection de l'objet avec un autre moyen que l'id, par exemple avec un this ou un name ou meme l'objet directement.
Mais tes fonctions ne gèrent aucune des spécificités de chaque navigateur.
J'ai déjà tenté de faire un code équivalent il y a un moment (http://www.javascriptfr.com/codes/DOM-BUILDER-PROTOTYPE-ROCKS_47227.aspx), mais il est loin de pouvoir gérer tous les cas particuliers...
Si tu veut un code fonctionnel qui marche vraiment pour tous les cas et tous les navigateurs (IE6 compris), je te conseille de te tourner vers prototype : http://www.prototypejs.org/api/element.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.