OVH Cloud OVH Cloud

createElement vs innerHTML

17 réponses
Avatar
Do Re Mi chel La Si Do
Bonjour !

Parmi les moyens d'ajout, dynamique, d'éléments (HTML) dans une page, il y a
.createElement( et .innerHTML=

- Quels seraient, selon vous, les avantages/inconvénients des de ces deux
possibilités ?
- Quelle est votre préférence (à vous), et pourquoi ?
- Utilisez-vous un autre moyen, plus-mieux bien ?

@+
--
Michel Claveau

10 réponses

1 2
Avatar
Fabrice Lambert
createElement permet, par la suite de manipuler l'element que tu vient
d'inserer, il renvoie une reference a cet element pour cela.
De plus, cette methode permet d'inserer n'importe quoi, n'importe ou (en
gros).

innerHTML est plus limité a mon avis.
On peut certe inserer n'importe quoi, mais pas n'importe ou, puisque il
s'applique a un tag existant.

Mes preference ? ca depend mon utilisation :)


"Do Re Mi chel La Si Do" a écrit dans le
message de news: 4210ac11$0$817$
Bonjour !

Parmi les moyens d'ajout, dynamique, d'éléments (HTML) dans une page, il y
a
.createElement( et .innerHTML >
- Quels seraient, selon vous, les avantages/inconvénients des de ces deux
possibilités ?
- Quelle est votre préférence (à vous), et pourquoi ?
- Utilisez-vous un autre moyen, plus-mieux bien ?

@+
--
Michel Claveau





Avatar
Patrick Mevzek

Parmi les moyens d'ajout, dynamique, d'éléments (HTML) dans une page, il
y a .createElement( et .innerHTML >
- Quels seraient, selon vous, les avantages/inconvénients des de ces
deux possibilités ?


L'une est propriétaire IE (innerHTML) , l'autre est standard W3C.
L'une encourage au tag soup (innerHTML), l'autre oblige à passer par le
DOM, donc par les noeuds, donc pas de tag soup a priori.

- Quelle est votre préférence (à vous), et pourquoi ?


createElement, pour les raisons précédentes.

Cf aussi http://www.quirksmode.org/dom/innerhtml.html

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>

Avatar
Etienne SOBOLE
Create Element est plus souple, parce que c'est vrai que tu récupères
directement l'objet crée, et puis ca semble plus propre.
Mais faut avouer, qu'en terme de performance, innerHTML va beaucoup beaucoup
plus vite.

maintenant les deux fonctionnent sous
IE, FireFox, Opera et SAFARI, donc autant dire tout le monde...

Etienne
Avatar
Do Re Mi chel La Si Do
Bonsoir !

D'abord, merci pour la réponse.

Ensuite, lorsque tu dis que createElement permet de créer quelque chose
n'importe où, je pense que c'est TROP vrai. Ce que je veux dire, c'est que
l'on ne maîtrise pas la hiérarchie du DOM manipulé. Par exemple si l'on
"crée" 5 ou 6 <SPAN>, dans un espace/niveau où il y en a déjà, rien ne dit
qu'ils seront au début, à la fin, dans l'ordre, etc.

Côté innerHTML, certes il faut partir d'un tag existant ; mais rien
n'empêche de partir de document (ou de window), et, si nécessaire, de
reconstruire l'arborescence à volonté.

AMHA, les 2 sont (à peu près) équivalents en fonctionnalités ; mais
innerHTML est plus "verbeux" à contrôler.

Je lirai donc avec intérêt les autres réactions.

--
Michel Claveau
Avatar
Olivier Miakinen

[...] lorsque tu dis que createElement permet de créer quelque chose
n'importe où, je pense que c'est TROP vrai. Ce que je veux dire, c'est que
l'on ne maîtrise pas la hiérarchie du DOM manipulé. Par exemple si l'on
"crée" 5 ou 6 <SPAN>, dans un espace/niveau où il y en a déjà, rien ne dit
qu'ils seront au début, à la fin, dans l'ordre, etc.


Mais si, bien sûr tu sais où ils sont !
- lors du createElement : nulle part
- après un appendChild : derrière tous les autres sous-éléments
- après un insertBefore : juste devant le sous-élément choisi

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.

Avatar
Do Re Mi chel La Si Do
Avatar
Do Re Mi chel La Si Do
C'est une bonne synthèse. Je l'adopte. Merci.
Avatar
ASM

Parmi les moyens d'ajout, dynamique, d'éléments (HTML) dans une page
.createElement( et .innerHTML >
- Quels seraient, selon vous, les avantages/inconvénients
de ces deux possibilités ?
- Quelle est votre préférence (à vous), et pourquoi ?
- Utilisez-vous un autre moyen, plus-mieux bien ?


Je m'en suis longuement entretenu avec mon IE
il préfère nettement les inneHTML

Mozilla, vexé sans doute que je ne lui demande qu'après,
m'a répondu qu'il s'en contrecarrait !

Quan à mon NC4.5, lui il boude carrément !
"Les trucs dynamique c'a rien qu'des jeux d'gosses !
Si vous croyez que je vais m'occuper de ces enfantillages!"

Donc, fort de ces échanges constructifs avec mes navigateurs,
j'ai la nette impression qu'il faut se montrer très doux et indulgent
et savoir paser la brosse dans le bon sens.

Notre préférence, malheureusement, n'a rien à voir
dans l'histoire.
Nous sommes vraiment très peu de choses face à ces têtes de mule.


--
*******************************************************
Stéphane MORIAUX et son vieux Mac
*******************************************************

Avatar
ASM

Par exemple si l'on
"crée" 5 ou 6 <SPAN>, dans un espace/niveau où il y en a déjà,
rien ne dit qu'ils seront au début, à la fin, dans l'ordre, etc.


? ? ?

de creater un élément ne l'a jamais placé nulle part !

il faut l'apenchilder en plus

et là, selon toute logique, tu sais qu'il prend la file
du guichet où tu lui a dit de faire la queue.

à toi de compter le nbre de fois où tu a joué à Dieu
et de te débrouiller pour retrouver tes saints

En passant : un élément créaté peut être en plus idifié
(par son id tu pourras le retrouver)

Côté innerHTML, certes il faut partir d'un tag existant ;


d'un tag existant ou .... d'un tag créaté et appendchildé

et on en revient au même débat (d'où c'est qu'il est ?)


--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************

Avatar
Do Re Mi chel La Si Do
Bonsoir !

Je te trouve bien fataliste. Mais je suis d'accord ; quoique... caresser mon
I.E. dans le sens du poil, alors que je 'arrête pas de le déplumer !

@-salutations
--
Michel Claveau
1 2