@Jeffrey Oops.. silly me, that's true, I didn't realize. :)

Ariel Flesler

On 15 dic, 23:07, "Jeffrey Kretz" <[EMAIL PROTECTED]> wrote:
> That method will move the element into this new div, which messes up the
> DOM.  The outerHtml method below clones the element first so the original
> stays untouched.
>
> JK
>
>
>
> -----Original Message-----
> From: jquery-en@googlegroups.com [mailto:[EMAIL PROTECTED] On
>
> Behalf Of Flesler
> Sent: Friday, December 14, 2007 7:05 PM
> To: jQuery (English)
> Subject: [jQuery] Re: Getting .html() AND the container element
>
> Why not just:
>
> $.fn.outerHtml = function(){
>      return $('<div></div>').append( this[0] || '' ).html();
> };
>
> Ariel Flesler
>
> On 14 dic, 22:41, "Jeffrey Kretz" <[EMAIL PROTECTED]> wrote:
> > Here is the method I've used for this:
>
> > $.fn.outerHtml = function()
> >     {
> >         if (this.length)
> >         {
> >             var div = $('<div style="display:none"></div>');
> >             var clone =
> > $(this[0].cloneNode(false)).html(this.html()).appendTo(div);
> >             var outer = div.html();
> >             div.remove();
> >             return outer;
> >         }
> >         else
> >             return null;
> >     };
>
> > The basic idea is to create a hidden div and then append a clone of the
> > element.  This uses the cloneNode method which is supported on the DOM
> > element by all major browers:
>
> >http://www.quirksmode.org/dom/w3c_core.html
>
> > cloneNode(false) is used to perform a shallow clone -- there is no need to
> > dela with events and other similar properties.
>
> > This is followed by setting the innerHTML of the clone (since we didn't do
> a
> > deep clone).
>
> > Finally, get the innerHTML of the outer div, then remove it.
>
> > This doesn't disturb the page layout and gets your total HTML.
>
> > JK
>
> > -----Original Message-----
> > From: jquery-en@googlegroups.com [mailto:[EMAIL PROTECTED] On
>
> > Behalf Of Donald @ White Whale
> > Sent: Friday, December 14, 2007 2:21 PM
> > To: jQuery (English)
> > Subject: [jQuery] Getting .html() AND the container element
>
> > (Apologies of this double-posts somehow; lots of trouble with Google
> > Groups earlier, haven't seen the message come up yet, so:)
>
> > For an Ajax application I'm working on, I need to POST the HTML
> > contents of an element including the element itself. So if I have
> > <div class="example" id="example10">
> > Lorem ipsum <strong>dolor sit amet</strong>.
> > </div>
> > I need to grab that entire bit as a single string, including the first
> > div and it's attributes.
>
> > The only way I can figure to do this is to .wrap() the entire element
> > in another div, then get the .html() of that wrapper,  then remove the
> > wrapper. This feels clumsy and inefficient for a pretty
> > straightforward task, and messes with the DOM a bit more than I'd like
> > (the changes can theoretically mess with the page layout on the
> > viewer's end). Is there a better way to do this?- Ocultar texto de la cita
> -
>
> > - Mostrar texto de la cita -- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Reply via email to