Reputation: 25348
Say I have this HTML:
<ul>
<li id="example"><strong>Awesome</strong> example text</li>
</ul>
I want to be able to do something like $('#example').html()
but right now doing that obviously only gets <strong>Awesome</strong> example text
.
So how can I get the HTML including the selected element?
ie. <li id="example"><strong>Awesome</strong> example text</li>
I'm using jQuery 1.4.4.
Upvotes: 40
Views: 34144
Reputation: 18350
In this specific case:
var outerHTML = $("<div />").append($('#example').clone()).html();
See this page for more details.
And the discussion here: http://api.jquery.com/html/ (this explains that this isn't in jQuery core and why some logical solutions won't work)
Upvotes: 57
Reputation: 1
Anything wrong with simply using $('#example') ? This grabs the whole thing!
Upvotes: -4
Reputation: 486
You could try this:
var html = $('<div>').append($('#example').clone()).html();
Upvotes: 6
Reputation: 28429
For browsers that support it, outerHTML can do that. There are jQuery plugins like this and this that enable support via some clever jQuery.
Upvotes: 2