J'ai une chaîne qui contient le innerHtml d'un objet (reçu via un appel à $.html()
).Comment créer un objet jQuery à partir de innerHtml?
Comment puis-je créer un objet jQuery basé sur cette chaîne?
J'ai une chaîne qui contient le innerHtml d'un objet (reçu via un appel à $.html()
).Comment créer un objet jQuery à partir de innerHtml?
Comment puis-je créer un objet jQuery basé sur cette chaîne?
$(htmlString)
Ceci contiendra tous les éléments de la chaîne.
Si vous avez encore l'objet jQuery d'origine vous avez appelé la .html()
, vous pouvez accéder à ses enfants directement en utilisant la méthode .children()
:
var $children = $obj.children();
Cela leur retour sous forme de tableau jQuery.
var newelement= $('<div/>');
newelement.html(htmlString);
Cela diffère légèrement de SLaks Répondons en ce qu'elle préserve les enfants de noeud texte direct. Le raccourci de construction $(htmlString)
de jQuery, comme beaucoup de ses fonctionnalités, ne traite que des nœuds d'élément et non des nœuds de texte.
Donc, si htmlString
est 'foo<bar>bof</bar>zot'
, et que vous vouliez garder le foo
et zot
, vous auriez à le faire de cette façon. De même, avec la réponse de Xion, si vous souhaitiez conserver les enfants de nœuds de texte directs, vous devez utiliser la méthode contents()
plus inhabituelle plutôt que children()
.
C'était trop facile :) –