Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, questions/réponses pour les FAQ, sources et autres ressources pour la rubrique Web ainsi que ses sous-rubriques.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 15/02/2007, 00h21   #1
Auteur
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 5 158
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 5 158
Points : 5 605
Points : 5 605
Par défaut [FAQ] Définitions : innerText, innerHTML, outerText, outerHTML

Citation:
Q : Définitions innerText, innerHTML, outerText, outerHTML
R :
exemple :
Code html :
1
2
3
 
 
<p id="pg">coucou <b>tout le monde</b></p>

innertText : récupère le contenu entre deux balises sans interprétation des balises contenu dans le texte (supprime toutes la balises contenues dans le texte récupéré).
Code x :
1
2
3
4
document.getElementById("pg").innerText 
retourne 
coucou tout le monde

innerHTML : récupère le contenu entre deux balises avec formatage (laisse les éventuelles balises contenues dans le texte).
Code x :
1
2
3
4
document.getElementById("pg").innerHTML 
retourne 
coucou <b>tout le monde</b>


outerText : même chose que innerText ()

outerHTML : même chose que innerHTML mais prend également les balises qui encadrent le texte

Code x :
1
2
3
4
document.getElementById("pg").outerHTML 
retourne
<p id="pg">coucou <b>tout le monde</b></p>

Remarques :
innerText, outerText et outerHTML sont obsolètes
utiliser innerHTML (d'ailleurs Firefox ne reconnait que cette fonction)

Par ailleurs, pour ajouter de nouveaux éléments (select, div, p, span, a, form, input, etc...), il est vivement conseillé d'utiliser les méthodes du DOM (cf. ce tutotriel)
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 22h12   #2
Hibou57
Inactif
 
Avatar de Hibou57
 
Inscription : mars 2006
Messages : 852
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 852
Points : 398
Points : 398
Citation:
Envoyé par Auteur
Par ailleurs, pour ajouter de nouveaux éléments (select, div, p, span, a, form, input, etc...), il est vivement conseillé d'utiliser les méthodes du DOM
Le DOM est peut-être également plus efficace à l'execution. En effet, pour ajouter un élément E avec innerHTML, dans sur un source A, il faut séparer A en deux A1 et A2, qui sont des copies chacun d'une partie de A, et ensuite copier dans une autre variable le resultat A1 + E + A2, avant de l'affecter à sa place dans le document. D'où une consomation de mémoire supplémentaire, d'autant plus importante que A est volumineux (ce qui se fait formtement ressentir sur les machines modestes), et un temps d'execution évidement plus long, et finalement des réactions moins fluide, surtout si l'application fait un usage intentif des suppression/creation d'élément pendant la vie de la page (c'est-à-dire pas seulement à son initialisation).

Donc le DOM, oui, et pas seulement parce que c'est le DOM et que c'est plus propre selon certains critères, mais aussi parce que c'est plus econome en resource mémoire et processeur.
Hibou57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2012, 17h36   #3
kylekatarnls
Invité de passage
 
Inscription : août 2009
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 2
Points : 2
Points : 2
Par défaut outerHTML est valide

Depuis HTML 5, outerHTML est valide.

Et innerHTML (mais pas outerHTML) peut être utilisé pour modifier le contenu HTML de l'élément :
Code :
document.getElementById("pg").innerHTML="un autre <b>contenu</b>";
kylekatarnls est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2012, 21h59   #4
Auteur
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 5 158
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 5 158
Points : 5 605
Points : 5 605
Citation:
Envoyé par kylekatarnls Voir le message
Et innerHTML (mais pas outerHTML) peut être utilisé pour modifier le contenu HTML de l'élément :
Code :
document.getElementById("pg").innerHTML="un autre <b>contenu</b>";
moui... à utiliser avec parcimonie tout de même
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2012, 08h10   #5
vermine
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 3 996
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2008
Messages : 3 996
Points : 27 697
Points : 27 697
Et pourquoi ne pas en faire un article explicatif entre l'avant et l'après ? Ou bien une ou plusieurs Q/R pour la Faq ?
vermine est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2012, 18h43   #6
Auteur
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 5 158
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 5 158
Points : 5 605
Points : 5 605
Citation:
Envoyé par vermine Voir le message
Et pourquoi ne pas en faire un article explicatif entre l'avant et l'après ? Ou bien une ou plusieurs Q/R pour la Faq ?
entre l'avant et l'après ? C'est à dire ? Entre la définition postée en 2007 et la définition de 2012 ?


Pour le DOM vs innerHTML :
je pense que l'on peut tolérer innerHTML pour insérer un texte court et des balises utilisées pour la mise en forme (<b> <i> <u>).

Sinon pour insérer des éléments plus complexes (<div> <span> <p>...) il faut impérativement passer par le DOM. Même chose pour les tableaux (<table> <td> <tr> etc. ) et les listes (<select> <option>), les formulaires. Je vois encore trop souvent des innertHTML pour insérer des tableaux ou des des listes dans une page pour un résultat médiocre.
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h49.


 
 
 
 
Partenaires

Hébergement Web