web-dev-qa-db-fra.com

Convertir une chaîne de HTML en objets DOM avec jQuery

J'ai du HTML dans une chaîne JavaScript (contenant du HTML habituel et imbriqué). Avec jQuery, puis-je convertir cela en un élément HTML valide en un seul trait en utilisant l’une des fonctions document.create *? Mon exigence est d'utiliser document.getElementById sur l'objet DOM créé.

14
Vineel Kumar Reddy

Prenons un exemple imbriqué simple.

var dom_string = '<div>xxx<div>yyy</div></div>';

créez des éléments HTML DOM à l'aide de la fonction $ () de jquery et ajoutez-les où vous le souhaitez. J'ai pris 'corps' mais vous pouvez l'appliquer n'importe où.

$(dom_string).appendTo('body');

Sinon, vous pouvez implémenter cela avec du javascript pur:

var dom_target = document.getElementById("target");
dom_target.innerHTML = dom_string;
18
P K

Créez un élément factice et définissez sa innerHTML sur votre chaîne HTML.

4
SLaks
// Construct a container as a placeholder for your content

var container = document.createElement('div');
container.id = 'container';

// Inject the container into the DOM

document.body.appendChild(container);

// Populate the injected container with your content

container.innerHtml = '<p id="pTag">I am a <em>P</em> tag with some <strong>nested markup</strong>.</p>';
3
David Rivers

Pour convertir du texte HTML en objet Jquery, utilisez la fonction $ ():

div = '<div>hello world</div>';
$div = $(div);

Mais comme d’autres l’ont noté dans la plupart des cas, vous n’avez pas besoin de cela, car les fonctions de manipulation DOM telles que append () et prepend () acceptent le texte brut.

$('body').append('<div>hello world</div>');

est absolument bon.

0
Theo