j'obtenir une copie active d'un HTML5 <template>
en utilisant la fonction importNode()
:appendChild() supprime le contenu du modèle importé
function getTemplate() {
var t = document.getElementById("example");
return document.importNode(t.content,true);
}
Après cela, je remplis les données dynamiques,
var t = fillTemplate({
id:"test",
text:"Enter test data"
});
et enfin, J'ajoute le noeud dans le conteneur cible:
var c = document.getElementById("container");
var result = c.appendChild(t);
Mon problème: le noeud result
a tout son contenu supprimé: je ne peux pas accéder aux éléments de composant du modèle dans le noeud de résultat. En fait, le nœud result
ne contient aucun nœud enfant une fois que l'opération appendChild
a été effectuée.
Je pense que la valeur de retour de appendChild
doit pointer vers le noeud qui a été inséré dans le conteneur et qui fait maintenant partie du document actif. Toute explication pourquoi ce n'est pas le cas?
Voici le jsFiddle (testé dans Chrome 53):
https://jsfiddle.net/rplantiko/mv2rbhym/
Si jquery disponible, utilisez 'clone()' – Turtle
@TurtIe Je travaille avec le célèbre cadre « Vanilla JS » (0 Octets de téléchargement) :-) je peux obtenir ce que je dois en inspectant le récipient après la ' opération appendChild'. Je veux juste savoir pourquoi je ne peux pas inspecter la valeur de retour d'appendChild. – rplantiko