The Element#match function doesn''t work correctly with a CSS selector
that includes comma separated values. This means that Element#select
and Element#match behave differently when passed the same CSS
selector. The following is an example of how match should work.
$$(''input, label'').collect(function(e) {return
e.match(''input,
label'')}) //=> an Array with all true values
Instead the following currently happens:
$$(''input, label'').collect(function(e) {return
e.match(''input,
label'')}) //=> false is returned for each label
The following is a replacement for the current match method (based on
Element#select) but haven''t had a chance to turn it into a patch or
properly test it. Anyone want to lend a hand? :-)
match: function(element, selector) {
var expressions = $A(arguments), element = $(expressions.shift());
var exprs = expressions.join('',''), expressions = [];
exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m)
{
expressions.push(m[1].strip());
});
return !Object.isUndefined(expressions.detect(function(selector) {
selector = new Selector(selector);
return selector.match($(element));
}));
},
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Spinoffs" group.
To post to this group, send email to
rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---
metavida
2007-Nov-08 19:16 UTC
Re: Element#match doesn''t work with comma separated values
My first try wasn''t exactly right. Here goes again:
match: function() {
var expressions = $A(arguments), element = $(expressions.shift());
expressions =
expressions.join('','').split('','')
return !Object.isUndefined(expressions.detect(function(selector) {
selector = new Selector(selector);
return selector.match($(element));
}));
},
On Nov 8, 1:15 pm, metavida
<metav...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> The Element#match function doesn''t work correctly with a CSS
selector
> that includes comma separated values. This means that Element#select
> and Element#match behave differently when passed the same CSS
> selector. The following is an example of how match should work.
> $$(''input, label'').collect(function(e) {return
e.match(''input,
> label'')}) //=> an Array with all true values
>
> Instead the following currently happens:
> $$(''input, label'').collect(function(e) {return
e.match(''input,
> label'')}) //=> false is returned for each label
>
> The following is a replacement for the current match method (based on
> Element#select) but haven''t had a chance to turn it into a patch
or
> properly test it. Anyone want to lend a hand? :-)
>
> match: function(element, selector) {
> var expressions = $A(arguments), element = $(expressions.shift());
> var exprs = expressions.join('',''), expressions = [];
> exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m)
> {
> expressions.push(m[1].strip());
> });
> return !Object.isUndefined(expressions.detect(function(selector) {
> selector = new Selector(selector);
> return selector.match($(element));
> }));
> },
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Spinoffs" group.
To post to this group, send email to
rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---