Skip to main content

Bug Tracker

Side navigation

#1888 closed bug (fixed)

Opened November 02, 2007 07:59PM UTC

Closed December 10, 2007 05:51PM UTC

Last modified October 08, 2009 11:57AM UTC

jQuery(string) create not valid DOM when string is html with newlines

Reported by: lucifer4u Owned by:
Priority: major Milestone: 1.2.2
Component: ajax Version: 1.2.1
Keywords: Cc:
Blocked by: Blocking:
Description

It is common task to get html from server and to work with it in its own context.

I have test.html file with this content:

<html>
  <head>
    <title>
      Test page
    </title>
  </head>
  <body>
    <div>
      Some information
    </div>
  </body>
</html>

So after trying

$.get("test.html",function(data){alert($(data).find("div");}) 

i found an error. Here is more info about:

Test examples:

			var s1 = '<html><head><title>info</title></head><body><div>info</div></body></html>';
			alert($(s1).find('div')); // [object Object]
			var s2 = '<html>\\n<head><title>info</title></head><body><div>info</div></body></html>';
			alert($(s2).find('div')); // [error]

Solution:

			function jquery_from_html(data) {
				return $("<moo/>").append(data);
			}

Example of usage:

			$.get(
				"test.html",
				{},
				function(data){
					d = $("div#system", jquery_from_html(s));
					alert(d.text());		
				},
				"html"
			)

Found in jquery source in load function:

						// Create a dummy div to hold the results
						jQuery("<div/>")

Attachments (1)
  • jquery_test.html (1.0 KB) - added by davidserduke December 10, 2007 06:09PM UTC.

    test case

Change History (2)

Changed December 06, 2007 08:12PM UTC by joern comment:1

component: coreajax

Changed December 10, 2007 05:51PM UTC by davidserduke comment:2

resolution: → fixed
status: newclosed

Fixed in [4062]. It was fixed when #1039 and #1733 were fixed.