Perché jQuery non riesce a caricare / analizzare la mia stringa HTML?
Domanda
jQuery.get(window.location.href, function(data) {
alert(data);
alert($(data).html());
});
Il primo popup è tutto l'HTML buono e sano.
Il secondo popup è vuoto. Perché? (l'HTML è conforme XHTML)
Soluzione
Dalla documentazione :
La stringa HTML non può contenere elementi non validi all'interno di a div, come html, head, body o elementi del titolo.
Se stai recuperando un documento HTML completo, avrai molti elementi che potrebbero non apparire in un div.
Altri suggerimenti
Perché restituirà una stringa con tutto l'HTML. data
non è un oggetto jQuery.
L'ho provato sul mio PC. Si ottiene quanto segue:
"
<!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
Questo non analizzerà un oggetto jQuery. È necessario trovarsi su una pagina di script sul lato server che genererà esplicitamente HTML.
Suppongo che se hai davvero bisogno di un elemento in HTML, puoi rimuoverlo dal testo usando i metodi stringa incorporati.
Cambia il tuo codice in qualcosa del genere
$('#yourContainingDiv').html(data);
L'html nei dati verrà inserito nel tag div