Pourquoi jQuery ne parvient-il pas à charger / analyser ma chaîne HTML?
Question
jQuery.get(window.location.href, function(data) {
alert(data);
alert($(data).html());
});
Le premier popup contient tout le code HTML bon et sain.
La deuxième fenêtre est vide. Pourquoi? (le code HTML est compatible XHTML)
La solution
De la documentation :
La chaîne HTML ne peut pas contenir éléments non valides dans un div, tel que html, tête, corps ou éléments de titre.
Si vous récupérez un document HTML complet, vous aurez beaucoup d'éléments qui peuvent ne pas apparaître dans un div.
Autres conseils
Parce qu'il retournera une chaîne avec tout le code HTML. data ??code> n'est pas un objet jQuery.
J'ai essayé ceci sur mon PC. Vous récupérez ce qui suit:
"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1"><title>
</title><link href="App_Themes/selectors.css" rel="stylesheet" type="text/css" /></head>................etc
Ceci ne sera pas analysé dans un objet jQuery. Vous devez être sur une page de script côté serveur qui générera explicitement le code HTML.
Je suppose que si vous avez réellement besoin d'un élément HTML, vous pouvez le supprimer du texte à l'aide des méthodes de chaîne intégrées.
Remplacez le code par quelque chose comme ceci
$('#yourContainingDiv').html(data);
Le code HTML dans les données sera placé dans la balise div