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?
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>
3 Comments
user113716
Why
.clone() a $("<p>") you just created? ;o)Nick Craver
@patrick - this is just an example...if used in practice, to not move the original element.
user113716
Nick - Yeah, I know.
$("p").clone() to not move the original. But I don't imagine in practice there's ever a use for .append($("<p>").clone()). Was mostly just giving you a hard time.Try $( 'p' ).html() rather than $( '<p>' ).html()
Example at http://jsfiddle.net/tdg7U/
Test1 alerts $( '<p>' ).html()
Test2 alerts $( 'p' ).html()
1 Comment
mikemaccana
It's probably worth including the tests in an answer here rather than relying on jsfiddle.