6

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 2

6

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>
Sign up to request clarification or add additional context in comments.

3 Comments

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

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

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

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

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

1 Comment

It's probably worth including the tests in an answer here rather than relying on jsfiddle.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.