the $.makeArray(document.styleSheets) is to get around a bug in IE (http://dev.jquery.com/ticket/4366).
This code does not parse the CSS; the styleSheets collection is the already-parsed rules that the browser applies. See http://www.hunlock.com/blogs/Totally_Pwn_CSS_with_Javascript for an introduction. On Mar 26, 8:29 am, Alexandre Plennevaux <aplennev...@gmail.com> wrote: > arf how stupid of me, thanks for the head up, this works: > > function getStyle (selector){ > var re = new RegExp('(^|,)\\s*'+selector.toLowerCase()+'\\s*(,|$)'); > var style = ""; > $.each ($.makeArray(document.styleSheets), function(){ > $.each (this.cssRules || this.rules, function(){ > if (re.test(this.selectorText)) style += this.style.cssText + ';'; > }); > }); > return style; > > } > > var temp = getStyle('#myitem:hover'); > alert("css= "+temp); > > live here:http://jsbin.com/itipo > > still, that's a heavy work around for something that i assumed would > be stored in memory. If i understand correctly you parse through each > css file, right? > > On Thu, Mar 26, 2009 at 2:19 PM, Gilles <gil...@netxtra.net> wrote: > > > Try changing to JQuery.each() instead (or $.each, but I believe it's > > JQuery.each()) in this case > > > On Mar 26, 1:12 pm, Alexandre Plennevaux <aplennev...@gmail.com> > > wrote: > >> tried it but it returns an error, about the "each()" > > >> see & tweak :http://jsbin.com/avoxu > > >> On Thu, Mar 26, 2009 at 2:00 PM, Danny <d.wac...@prodigy.net> wrote: > > >> > What I've used to grab styles from the stylesheets (though never for > >> > pseudo classes; please try it!) is: > >> > function getStyle (selector){ > >> > var re = new RegExp('(^|,)\\s*'+selector.toLowerCase()+'\\s*(,| > >> > $)'); > >> > var style = ""; > >> > each ($.makeArray(document.styleSheets), function(){ > >> > each (this.cssRules || this.rules, function(){ > >> > if (re.test(this.selectorText)) style += > >> > this.style.cssText + ';'; > >> > }); > >> > }); > >> > return style; > >> > } > > >> > and use getStyle('a:hover') > > >> > This is simplified; it doesn't handle @import and @media or escape > >> > special characters, but it ought to work. > > >> > Danny > > >> > On Mar 26, 6:22 am, Alexandre Plennevaux <aplennev...@gmail.com> > >> > wrote: > >> >> i'm just trying to be as semantically correct as possible. > > >> >> say i want links to change their background color when the mouse passes > >> >> over. > >> >> I can do it in css easily > > >> >> a { > >> >> background-color:red; > > >> >> } > > >> >> a:hover{ > >> >> background-color:green; > > >> >> } > > >> >> now, for those who have javascript, i want the color change to be an > >> >> animated color blend, from red to green. > >> >> I can of course retrieve the target color (green in this example) by > >> >> storing it via metadata, a custom attribute or the data attribute. > >> >> However, strictly speaking, its correct place is the css file itself, > >> >> where all styling should be. > > >> >> that's why i wanted to know if i can have access to the css properties > >> >> set in the stylesheet for the :hover pseudo class. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to jquery-dev@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 -~----------~----~----~----~------~----~------~--~---