J’utilise le code ajax de jQuery pour charger de nouvelles pages, mais je voulais qu’il obtienne uniquement le code HTML d’une div.
Mes codes: HTML:
Scénario:
$.ajax({ url:href, type:'GET', success: function(data){ $('#content').html(data); } });
Je voulais qu’il obtienne uniquement le code HTML de $ (‘div # content’) sur une autre page. Comment faire?
Ok, vous devriez “construire” le code HTML et trouver le fichier .content.
comme ça:
$.ajax({ url:href, type:'GET', success: function(data){ $('#content').html($(data).find('#content').html()); } });
Simple!
Vous pouvez utiliser la méthode JQuery .load ():
$( "#content" ).load( "ajax/test.html div#content" );
Si vous recherchez du contenu provenant de domaines différents, le problème est résolu:
$.ajax({ url:'http://www.corsproxy.com/' + 'en.wikipedia.org/wiki/Briarcliff_Manor,_New_York', type:'GET', success: function(data){ $('#content').html($(data).find('#firstHeading').html()); } });
Vous ne pouvez vraiment pas faire cela, une requête ajax récupère le fichier entier, mais vous pouvez filtrer le contenu une fois récupéré:
$.ajax({ url:href, type:'GET', success: function(data) { var content = $('').append(data).find('#content'); $('#content').html( content ); } });
Notez que l’utilisation d’un élément factice, car find()
ne fonctionne qu’avec les descendants et ne trouve pas les éléments racines.
ou laissez jQuery le filtrer pour vous:
$('#content').load(href + ' #IDofDivToFind');
Je suppose que ce n’est pas une requête interdomaine, car cela ne fonctionnera pas, uniquement des pages du même domaine.
$.ajax({ url:href, type:'get', success: function(data){ console.log($(data)); } });
Ce journal de la console obtient un tableau comme object: [meta, title,,], très étrange
Vous pouvez utiliser JavaScript:
var doc = document.documentElement.cloneNode() doc.innerHTML = data $content = $(doc.querySelector('#content'))