¿Por qué este jQuery no puede cargar / analizar mi cadena HTML?
Pregunta
jQuery.get(window.location.href, function(data) {
alert(data);
alert($(data).html());
});
La primera ventana emergente es todo el HTML bueno y saludable.
La segunda ventana emergente está en blanco. ¿Por qué? (el HTML es compatible con XHTML)
Solución
De la documentación :
La cadena HTML no puede contener elementos que no son válidos dentro de un div, como html, head, body o elementos del título.
Si está buscando un documento HTML completo, tendrá muchos elementos que pueden no aparecer en un div.
Otros consejos
Porque devolverá una cadena con todo el HTML. data
no es un objeto jQuery.
Probé esto en mi PC. Obtiene lo siguiente:
"
<!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
Esto no se analizará en un objeto jQuery. Debes estar en una página de script del lado del servidor que generará HTML de forma explícita.
Supongo que si realmente necesita un elemento en el HTML, puede eliminarlo del texto utilizando los métodos de cadena incorporados.
Cambie su código a algo como esto
$('#yourContainingDiv').html(data);
El html en los datos se colocará en la etiqueta div