Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery: html() returning empty string

If I use firebug and type $("<p>").html() into the watch window, I get an empty string back. My guess is because the $("<p>") hasn't been rendered to the document. How can I get the markup for $("<p>") before it's added to the DOM?

like image 475
ILikeMooToolsBetter Avatar asked Aug 16 '10 18:08

ILikeMooToolsBetter


2 Answers

You're asking for the outer HTML, not the inner, the HTML inside the <p> is indeed empty.

To get the HTML you'd have to wrap it in another element, like this:

jQuery("<div>").append($("<p>").clone()).html()

This would give you:

<p></p>
like image 149
Nick Craver Avatar answered Oct 30 '22 22:10

Nick Craver


Try $( 'p' ).html() rather than $( '<p>' ).html()

Example at http://jsfiddle.net/tdg7U/

Test1 alerts $( '<p>' ).html()

Test2 alerts $( 'p' ).html()

like image 43
hookedonwinter Avatar answered Oct 30 '22 22:10

hookedonwinter