Récupère le code HTML de l’élément div renvoyé par .get avec jQuery

J’essaie d’obtenir le code HTML d’un div spécifique renvoyé par une requête .get (la requête .get renvoie des données HTML avec 3 divs avec 3 identifiants différents)

Voici mon code:

$.get("ajax/learn-more.html", function(data){ var $response = $(data); alert($response.find('#main-images')); // <= prints [Object object] alert("Data Loaded: " + data); // <= displaysthe whole html of learn-more.html // how can I get the html of a div in learn-more.html with id="main-images" ??? }); 

MODIFIER:

Le contenu de learn-more.html:

 
Foo Bar
:D

$response.find('#main-images') retournera un object jQuery vide . Aucun des éléments sélectionnés n’a de descendant avec les main-images ID. Au lieu de cela, l’un des éléments sélectionnés est celui que vous recherchez.

Pour obtenir la référence à la div utilisez .filter() [docs] :

 $response.filter('#main-images'); 

Si vous voulez obtenir le code HTML, ajoutez d’abord le contenu à un div vide et supprimez les éléments indésirables:

 var container = $('
').html(data); container.children().not('#main-images').remove(); var html = container.html();

ou utilisez un plugin outerHTML :

 var html = $response.filter('#main-images').outerHTML(); 

$(data) renvoie un tableau d’éléments et non un object jQuery ordinaire. $(data)[1] contient votre élément #main-images .

Comme Felix Kling a répondu, vous pouvez utiliser le filter au lieu de find .

 $(data).filter('#main-images').html();