Hi, Ricardo,

Got your point, but, suppose we have the following situation (which led me
to test parent elements using $().parent() and $().parents()):

<div class="grandparent">
    <div class="parent">
        <div class="child">
            Am I in DOM?
        </div>
    </div>
</div>

var grandparent = $('div.grandparent');
var child = $('div.child');
$('div.parent').remove();



What would be the result of child.get(0).parentNode ? Sorry not to test it
right now, but I'm not at home, and can't test it right now...

Thanx!

Diogo



On Sun, Nov 30, 2008 at 4:35 PM, ricardobeat <[EMAIL PROTECTED]> wrote:

>
> Hi,
>
> It seems the ownerDocument is set for the created element even if it's
> not in the DOM, it's the document where jQuery was loaded in. A simple
> check for parentNode or offsetParent would do:
>
> $.fn.inDOM = function(){
>     return !!this.parentNode; //boolean
> });
>
> parentNode returns faster for elements in the DOM, while offsetParent
> returns faster for elements not in the DOM (in FF3 at least).
>
> Hope I'm not missing anything. It surely would need a better name :]
>
> cheers,
> - ricardo
> On 29 nov, 14:46, Ariel Flesler <[EMAIL PROTECTED]> wrote:
> > 'body' should be replaced by 'html'.
> >
> > Maybe we can make it faster by consulting expandos like
> > ownerDocument ?
> >
> > --
> > Ariel Fleslerhttp://flesler.blogspot.com
> >
> > On Nov 27, 12:52 am, diogobaeder <[EMAIL PROTECTED]> wrote:
> >
> > > Hi there,
> >
> > > I'm new here (and in jQuery), but even though I'd like to propose some
> > > simple but usefull method to the jQuery object (at core.js) to tell
> > > the API user if an element exists in the document. I've tried to build
> > > one as follows:
> >
> > > [CODE]
> > > (function($) {
> >
> > >     $.fn.inDOM = function() {
> > >         return !!this.parents('body').length;
> > >     };
> >
> > > })(jQuery);
> >
> > > jQuery(document).ready(function(){
> > >     var jEl = $('.someExistingClass');
> >
> > >     // Should be in DOM
> > >     console.debug(jEl.inDOM());
> >
> > >     // Removing the element
> > >     jEl.remove();
> >
> > >     // Should NOT be in DOM
> > >     console.debug(jEl.inDOM());});
> >
> > > [/CODE]
> >
> > > So, if the client sets a variable as a jQuery object, and at some
> > > point of the code the DOM element within it can be removed, he/she can
> > > test if it really was. OK, I know it sounds unsignificant, but I think
> > > it would still be usefull.
> >
> > > Thanks!
> >
> > > Diogo Baeder
> >
>


-- 
Diogo Baeder
http://www.diogobaeder.com.br

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to