The main culprit of these problems is probably jQuery.makeArray. It is supposed to convert anything to an array, but how about NodeLists? Maybe jQuery.makeArray have to call jQuery.merge internally if a NodeList is given? If so, then an jQuery.isNodeList is needed, I suppose.
On Oct 30, 5:01 pm, John Resig <jere...@gmail.com> wrote: > Eww... It must've been accidentally cut in the last release - but we > didn't notice because the "worst case" is only a minor perf hit. Well, > it makes it pretty easy to actually just remove it then! (Especially > if the only place where it's being used internally is in this > soon-to-be-stripped method.) > > I'll be sure to revise the docs when I make the cut as well. > > --John > > On Fri, Oct 30, 2009 at 11:52 AM, Karl Swedberg <k...@englishrules.com> wrote: > > I came across an oddity with jQuery.merge from a completely different route > > -- looking through jQuery.support properties. It looks like jQuery.merge is > > testing for jQuery.support.getAll, but I can't for the life of me find > > anywhere in the source where jQuery.support.getAll is being defined. > > Since jQuery.support.getAll is never true (because it's not defined), > > comments are always excluded ( if ( elem.nodeType !== 8 ) ). > > Did jQuery at one point define jQuery.support.getAll? And if so, what was it > > based on? > > from core.js line 442 (in github version just pulled this morning): > > merge: function( first, second ) { > > // We have to loop this way because IE & Opera overwrite the length > > // expando of getElementsByTagName > > var i = 0, elem, pos = first.length; > > // Also, we need to make sure that the correct elements are being returned > > // (IE returns comment nodes in a '*' query) > > if ( !jQuery.support.getAll ) { > > while ( (elem = second[ i++ ]) != null ) { > > if ( elem.nodeType !== 8 ) { > > first[ pos++ ] = elem; > > } > > } > > } else { > > while ( (elem = second[ i++ ]) != null ) { > > first[ pos++ ] = elem; > > } > > } > > return first; > > } > > > --Karl > > ____________ > > Karl Swedberg > >www.englishrules.com > >www.learningjquery.com > > > On Oct 30, 2009, at 10:31 AM, John Resig wrote: > > > I think you're right here - I'm not completely convinced that this > > distinction still needs to exist. Could you file a ticket? Thanks. > > > --John > > > On Fri, Oct 30, 2009 at 7:47 AM, Robert Katić <robert.ka...@gmail.com> > > wrote: > > > To be more accurate, > > > $([]).add( nodeList ) > > > can not contains comment nodes only on IE. > > > This makes it even more ambiguous, with unexpected results. > > > Also it seams that the only expected NodeList is from an > > > getElementsByTagName.call. > > > I know that it is not explicitly supported by the API, but even then > > > it seams that there are some inconsistent logic. > > > On Oct 30, 6:28 am, Robert Katić <robert.ka...@gmail.com> wrote: > > > jQuery.merge() is the only function that discards comment nodes (?). > > > This means that > > > $( nodeList ) > > > can contains comment nodes, but > > > $([]).add( nodeList ) > > > can not. > > > Why such different behaviors? > > > Is the jQuery.makeArray() more appropriate to filter comment nodes? > > > Am I missing something here? > > > -- > > > You received this message because you are subscribed to the Google Groups > > "jQuery Development" group. > > > To post to this group, send email to jquery-...@googlegroups.com. > > > To unsubscribe from this group, send email to > > jquery-dev+unsubscr...@googlegroups.com. > > > For more options, visit this group at > >http://groups.google.com/group/jquery-dev?hl=en. > > > -- > > > You received this message because you are subscribed to the Google Groups > > "jQuery Development" group. > > To post to this group, send email to jquery-...@googlegroups.com. > > To unsubscribe from this group, send email to > > jquery-dev+unsubscr...@googlegroups.com. > > For more options, visit this group at > >http://groups.google.com/group/jquery-dev?hl=en. > > > -- > > > You received this message because you are subscribed to the Google Groups > > "jQuery Development" group. > > To post to this group, send email to jquery-...@googlegroups.com. > > To unsubscribe from this group, send email to > > jquery-dev+unsubscr...@googlegroups.com. > > For more options, visit this group at > >http://groups.google.com/group/jquery-dev?hl=en. -- You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to jquery-...@googlegroups.com. To unsubscribe from this group, send email to jquery-dev+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en.