It doesn't need to wait for Sizzle; you could extend jQuery.expr quite
easily (copying most of the code from Balazs Endresz above) :

jQuery.expr[':'].data = function (a,i,m){
  var re = /([\w-]+)\s*((\S{0,1}=)\s*(.+))?/; // simplified regular
expression; should allow for escaped characters etc.
  var match = re.exec(m[3]), result = $.data(a, match[1]), value =
result + "", type = match[3], check = match[4];
  return result === undefined ?  false :
      !type ? true :
      type === "=" ? value === check :
      type === "*=" || type === "~=" ?  value.indexOf(check) >= 0 :
      type === "!=" ?  value != check :
      type === "^=" ?  value.indexOf(check) === 0 :
      type === "$=" ?  value.substr(value.length - check.length) ===
check :
      type === "|=" ?  value === check || value.substr(0, check.length
+ 1) === check + "-" :
      false;
}

and do $(":data(foo)") to select for data.foo existing, $
(":data(foo=bar)") for data.foo == "bar", etc.

Danny (a different Danny than the one who started the thread!)

On Nov 3, 7:34 am, "Jörn Zaefferer" <[EMAIL PROTECTED]>
wrote:
> Right Ariel, I sort of stopped reading after $('*:data(foo)').
>
> You're right that it makes sense to aim this at Sizzle directly. I
> think it will be quite interesting for other libraries as well to see
> how extensible it is.
>
> Jörn
>
> On Sun, Nov 2, 2008 at 10:13 PM, Ariel Flesler <[EMAIL PROTECTED]> wrote:
>
> > Seems fine to me. The ideal place for it would be inside $.expr[':']
> > but I'm not sure it fits.
>
> > $('*:data(foo)')
>
> > No place for the value. The other option (requires modifying/
> > overloading the core) would be:
>
> > $('*[:foo=bar]')
>
> > Where those ':' are some random character that identifies this. As a
> > generic solution, I think we could add another $.expr for characters
> > on this place.
> > So.. one could do (f.e)
>
> > $('*[~padding=0px]')
>
> > As a random way of selecting by style properties. Hopefully Sizzle
> > will allow this easily.
>
> > --
> > Ariel Flesler
> >http://flesler.blogspot.com/
>
> > On Nov 2, 3:28 am, Danny <[EMAIL PROTECTED]> wrote:
> >> I was recently having a discussion with a fellow developer who was
> >> writing code that set custom html attributes to various nodes to save
> >> information that'd be required later when working with them.
> >> I asked him why he wasn't using jquery's built-in support, Data for
> >> storing that information in the nodes. He responded saying, he
> >> woulnd't be able to use jquery's selectors to query against the dom.
> >> $("div[custId=5]")  //etc.
>
> >> That made me wonder, why isn't there some sort of support for querying
> >> the values in the jquery.data from within a selector.  I'm aware I
> >> could write a whole .filter(...) function but thats extrodinarily
> >> wordy and defeat the purpose.
>
> >> I was wondering what others thought of this, and how useful the data
> >> functionality is to them in this regard.
--~--~---------~--~----~------------~-------~--~----~
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