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éé.
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;
Créez un élément factice et définissez sa innerHTML
sur votre chaîne HTML.
// 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>';
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.