Two quick things: 1) This selector isn't valid: $("div span[offsetWidth>0]"); (There's no > in jQuery attribute selectors). 2) I really like the idea of checking the offsetWidth - that seems much faster than what we're doing right now - and seems relatively painless.
Could you file a bug on using offsetWidth for jQuery selectors here? http://dev.jquery.com/newticket Thanks! --John On Thu, Jan 15, 2009 at 12:39 PM, M.A.WEB <math...@matheusalmeida.com.br> wrote: > > The concept is simple: to find the elements that are visible at the > screen. > But by using the :visible selector, it verify only the element itself, > so if a parent element is hidden, the child is still considered as > visible. > > Here's an example markup: > <div style="display:none;"><span>TEST</span></div> > > If we use this selector: > $("div:visible"); > > It will find nothing because the div is not being shown. > > But, if we use this: > $("div span:visible"); > > It finds the span even when the tag tag is inside a hidden block. > > I don't know if it's a bug or a expected result, but I needed to use > this concept to find visible input fields in my webapp (that has a lot > of forms that are hidden along the requests, like a wizard), and this > simple selector was'nt working. So, here's a workaround that can be > used to find an visible element at the document independently of its > parents. > > $("div span[offsetWidth>0]"); > > As we know, the offsetWidth is a readonly property of a element that > returns its position on screen, and if it's not visible, the value is > zero (and the same occurs with offsetHeight). > > Honestly, I did'nt tested it widely in various situations, but in my > case resolves the problem. > > Therefore, if the :visible selector result is not the expected, I let > this as a suggestion to implement at jQuery's next releases. > > And please, correct me if I'm wrong in some point. > > Cheers! > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---