La création dynamique d'éléments HTML à l'aide de Javascript?
Je veux créer dynamiquement des éléments HTML (3 élément html) et ensuite de retour à ce code html comme une chaîne de caractères dans une variable. Je ne veux pas écrire le code HTML dans la fonction suivante pour certains div, mais, je veux retourner dans une var.
function createMyElements(id1,id2,id3){
//create anchor with id1
//create div with id 2
//create xyz with id3
//now return the html code of above created just now
}
Comment puis-je faire cela?
Voulez-vous créer
code html de elemets dans un var et enfin je ferai de document.getElementbyID("yu").innerHTML = var_containing_code
elements
, ou voulez-vous créer string
représentations d'éléments?code html de elemets dans un var et enfin je ferai de document.getElementbyID("yu").innerHTML = var_containing_code
OriginalL'auteur dojoX | 2011-04-04
Vous devez vous connecter pour publier un commentaire.
Vous pouvez créer un élément à l'aide de
document.createElement
. Après la création, vous pouvez ajouter des attributs. Si vous souhaitez que l'élément à afficher dans votre document, vous devez insérer dans le DOM-arbre du document. Essayez de jouer un peu avec ce code:Si c'est uniquement du html que vous voulez, c'est une approche:
Pourtant, une autre approche est de créer un div sans l'injecter dans l'arborescence du DOM et ajouter des éléments à l'aide de méthodes du DOM. Voici une fonction pour créer 1 élément
OriginalL'auteur KooiInc
Vous pouvez construire le code html comme une chaîne de caractères dans une variable comme
puis vous rendre la variable html
ouais, je sais, et vous pouvez même le faire mieux et moins enclins à faire des erreurs à l'aide de jquery.
c'est la MAUVAISE façon, ne pas écrire du code comme ceci. Vous pouvez la mettre en œuvre rapide, mais plus tard, vous vous sentirez muet.
OriginalL'auteur Sufendy
Html:
JavaScript:
La principale raison de l'utilisation d'un documentFragment au lieu de simplement ajouter les éléments directement est la rapidité d'exécution.
À cette dimension, il n'a pas d'importance, mais lorsque vous commencez à ajouter des centaines d'éléments, vous apprécierez de le faire en mémoire de la première 🙂
Avec documentFragment vous pouvez construire tout un arbre de DOM-éléments en mémoire et ne sera pas afffect le navigateur DOM jusqu'au dernier moment.
Sinon, il force le navigateur à jour pour chaque élément, ce qui peut parfois être une vraie douleur à regarder.
En outre, vous voudrez peut-être lire le commentaire de Raziel (30 juillet 2008 à 1:10 pm) @ ejohn.org/blog/dom-documentfragments/#postcomment
Merci pour les deux pointeurs. Surtout le plus tard. Le point principal est toujours les avantages de la création des éléments en mémoire que oposed de les ajouter au DOM pendant que vous allez le long. Mais nous agrea sur cette partie. Je dirais que, comme vous, qu'il ne compte pas si vous ajoutez les éléments d'un documentFragment ou de tout autre nœud de mémoire. Une des raisons pour lesquelles je préfère encore le documentFragment est pour le readabillity, car il est clair que le fragment n'est pas une partie de la DOM. Mais jusqu'à ce que j'ai goûté, c'est une question de goût 🙂
testé, pas goûté.
J'ai fait des tests simples: jsfiddle.net/6WEHc/5. Et il semble que l'utilisation de document.createElement('div'); est un peu plus rapide que le document.createDocumentFragment(); Espérons que cela aide quelqu'un 🙂
OriginalL'auteur Guidhouse
Voici une illustration simple pour la conversion de la page html (statique), javascript, html-de la page (dynamique).
Permettez-nous de vous dire, vous avez html-de la page "index.html" (l'appel de index_static.html ici).
index_static.html
Vous pouvez ouvrir ce fichier dans le navigateur, pour voir le résultat souhaité.
Maintenant, permet de créer un javascript équivalent à cela.
Utilisation en ligne-outil, pour générer le javascript source (coller le html ci-dessus fichier source). Par conséquent, il s'ensuit que:
dynamic.js
Et maintenant, votre version dynamique de la static_index.html sera comme ci-dessous:
index_dynamic.html
Ouvrir la index_dynamic.html sur le navigateur pour valider la page web dynamique (même si, en bas de la ligne).
plus d'infos
OriginalL'auteur parasrish
Si vous êtes en train de faire cela à plusieurs reprises (de la création dynamique d'HTML), vous pourriez vouloir utiliser une approche plus générale.
Si vous souhaitez créer trois sans rapport avec les éléments, vous pouvez faire:
Maintenant, vous disposez de trois éléments. Si vous souhaitez obtenir le code HTML de ces (sous forme de chaîne), il suffit de faire:
Si vous voulez avoir ces trois dans un élément (par exemple, div), faites:
Vous pouvez obtenir le code HTML avec
div.outerHTML
, ou vous pouvez simplement ajouter n'importe où vous le souhaitez.Pour en savoir plus sur
elem()
, visite element.js (GitHub).je suis en ajoutant cette réponse n'est pas pour les 8 ans, mais pour les futurs visiteurs. L'espoir, ça aide.
OriginalL'auteur akinuri