Tous les exemples de jQuery.append() semblent prendre une chaîne html et l'ajouter à un conteneur. J'ai un cas d'utilisation légèrement différent. Mon serveur me renvoie un XML qui contient du texte HTML à afficher, quelque chose comme:jQuery add DOM
<event source="foo">
<contents>
<h1>This is an event</h1>
This is the body of the event
</contents>
</event>
J'ai un div où ce contenu doit être affiché.
Mon JS fait actuellement les suivantes:
les charges de données XML dans jQuery dans le gestionnaire de succès .ajax $():
var jdata = $ (données);
Trouver la balise de contenu et tente d'ajouter ses enfants à la div qui est censé afficher l'événement:
var contents = jData.find("contents"); if(contents != null) { $(contents).children().each(function(index, value) { $("#eventDiv").append($(value)); }); }
Append appel() échoue avec Uncaught Erreur: WRONG_DOCUMENT_ERR: DOM Exception 4 sur Chrome. Le débogueur montre la valeur à un objet DOM élément et $ (valeur) pour être un objet qui contient l'élément .
Toute aide sera appréciée.
Merci. -Raj
Merci. Clone() semble me faire avancer. Pourtant, appeler html() provoque l'erreur: $ (enfant) .clone(). Html(): TypeError: Impossible d'appeler la méthode 'replace' de – Raj
en fait j'utilise contents(). Clone() qui inclut également des nœuds de texte. – Raj
@raj: Le '.html()' échoue parce que vous avez affaire à un document XML ici, et jQuery n'est pas 100% adapté pour traiter XML dans tous les cas. – Tomalak