views:

36

answers:

3

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?

+1  A: 

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>
Nick Craver
Why `.clone()` a `$("<p>")` you just created? ;o)
patrick dw
@patrick - this is just an example...if used in practice, to not *move* the original element.
Nick Craver
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.
patrick dw
A: 

What specifically are you trying to do (aside from get the HTML of a paragraph tag, obviously)?

Do you have some code you can possibly attach to this question?

El Guapo
+2  A: 

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

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

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

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

hookedonwinter