On the naming I'd prefer 'source' over 'raw'. It better describes what
you get from it and is easier to use in a sentence. Talking about the
'source' of a Node(List)Wrapper makes more sense then 'raw' of a
Node(List)Wrapper.

--
Nick

On 21 aug, 16:45, kangax <[EMAIL PROTECTED]> wrote:
> On Aug 21, 9:21 am, "T.J. Crowder" <[EMAIL PROTECTED]> wrote:
>
>
>
> > Hiya,
>
> > > > 2. FWIW, it seems to me that calling an accessor on a list should
> > > > return a list of the accessor results for each list element.  Always.
> > ...
>
> > > This is tricky : )
> > > On one hand, having accessor act on all elements seems most intuitive
> > > and consistent with the current API. On the other hand, I can clearly
> > > see a case when getting "first value" is much more convenient.
> > > Considering that NodeList items can not be accessed via brackets,
> > > wouldn't we end up with a somewhat verbose syntax?
>
> > > $$('#sidebar #expandAll')[0].observe('click', function(){});
>
> > > becomes:
>
> > > $W('#sidebar #expandAll').source[0].observe('click', function(){});
>
> > Maybe I'm not understanding the example; I'm not a CSS guru by any
> > means.  To me that looks like you're selecting an element with the ID
> > 'expandAll' if and only if it exists within an element with the ID
>
> Correct.
>
> > 'sidebar'.  If so, that seems like quite an edge case to me (wouldn't
> > you know whether it was inside the sidebar?), but again, I think I
> > probably just don't get it.
>
> This happens anytime one needs to reference an element without id:
>
> $$('[name="'+prop+'"]')[0]; // get element by name
> $$('tbody tr:first-child')[0]; // get first row of a table
> $$('img[src^="data:image"]')[0]; // get image with specified src
> attribute
>
> etc.
>
>
>
> > > Perhaps, if we give NodeList a `first` method, it will make things a
> > > little less cryptic:
>
> > That sounds good.  But separately, if we think it's common to need to
> > select a single element on the basis of a CSS selector, I'd suggest an
> > explicit means of doing that (e.g., a separate function -- $$First()
> > comes to mind) that returns a NodeWrapper (or undefined, of course)
> > and is optimized for that operation -- specifically, it stops as soon
> > as it's found one.  More readable, perhaps slightly faster.
>
> Another global function? ; )
>
>
>
> > > > 3. Still don't like "source".  That word is just way too overloaded,
> > ...
>
> > > I really like `source` but let's keep the naming aside for now : )
>
> > No problem.  But you know I'll come back to it. :-)
>
> I know : )
>
>
>
>
>
> > > > 4. get() and set() methods:  Great to have them, but I think it's
> > > > important that we not expect/require that people _use_ them.
> > ...
> > > Sure. We should recommend using them wisely and whenever it makes
> > > sense.
>
> > Good good, just checking.
>
> > > > 5. How will the list wrapper handle indexing into the list?  E.g.:
>
> > > >     var items;
> > > >     var n;
> > > >     items = $$('div.item');
> > > >     for (n = 0; n < items.length; ++n)
> > > >     {
> > > >         items[n].update('This is item ' + n);
> > > >     }
> > ...
>
> > > "each" always passes index as a second argument to iterator function:
>
> > I don't use each() unless I have a really good reason for the added
> > overhead or I know I'm dealing with so few elements that the added
> > overhead (dramatic, in IE's case) doesn't matter.  I don't want people
> > to think I'm dissing each() and I don't want to start an each()
> > conversation.  But it seems like people get so caught up in the
> > coolness of this stuff they they forget that function calls have a
> > cost, inline closures have an even higher cost.  each() is really cool
> > and I love it, love the idea of it, love the expressiveness of it.
> > And implementations are making progress.  But for now my default mode
> > will continue to be boring old-fashioned for/next loops (backward if
> > it doesn't matter and time is *really* of the essence) barring a
> > strong reason to do something else.
>
> JS1.7 introduces iterators but as of now they are of little use (in a
> web environment) : /
> If `each` is out of the question, then yes, your previous example
> should be fine.
>
>
>
> > > > 6. Question on $$():  I think the idea so far is that it returns a
> > > > NodeListWrapper.  I'm guessing that that's a list of NodeWrappers
> > > > around the results of the query, right?
> > ...
> > > Yep, `source` of NodeList is an array of `Node`s.
>
> > Nodes?  Or NodeWrappers?
>
> NodeWrappers.
>
> --
> kangax
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype: Core" group.
To post to this group, send email to prototype-core@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/prototype-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to