0
jQuery.get(window.location.href, function(data) {
  alert(data);
  alert($(data).html());
});

The first popup is all the HTML good and healthy.

The second popup is blank. Why? (the HTML is XHTML compliant)

joshcomley
  • 27,342
  • 23
  • 104
  • 144

4 Answers4

3

From the documentation:

The HTML string cannot contain elements that are invalid within a div, such as html, head, body, or title elements.

If you are fetching a complete HTML document, then you will have lots of elements that may not appear in a div.

Quentin
  • 857,932
  • 118
  • 1,152
  • 1,264
0

Because it will return a string with all the HTML. data isn't a jQuery object.

peirix
  • 34,465
  • 22
  • 91
  • 126
0

I tried this on my PC. You get back the following:

"

<!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

This will not parse into a jQuery obejct. You get needs to be on a server-side script page that will explicitly output HTML.

I suppose if you really need an item in the HTML then you can strip it out from the text using the built-in string methods.

James Wiseman
  • 29,282
  • 17
  • 92
  • 156
0

Change your code to something like this

$('#yourContainingDiv').html(data);

The html in data will be placed in the div tag

pythonandchips
  • 2,155
  • 2
  • 24
  • 28