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();