Yes, it does look right on screen. Also the wired thing is that if I
use
Firebug console to manually get the color by

$("#category-list > li.division:eq(0) ul > li:eq(0)").css("background-
color");

it returns the correct one, rgb(255, 0, 0). Not sure why it does not
work programmatically.

Thanks,

John
On Jan 13, 2:37 pm, John Arrowwood <jarro...@gmail.com> wrote:
> But it LOOKS right on screen?
>
> On Wed, Jan 13, 2010 at 10:22 AM, John <john.jian.f...@gmail.com> wrote:
> > Sorry for the confusion. Actually, the getColor is a function called
> > by another function,
> > which first checks all different css, if the css is color related and
> > the value is transparent, then
> > passes in the dom element, not jquery object, to the getColor function
> > to get back the
> > actual color. I did trace in firebug and the getColor did walk up to
> > the body, all nodes
> > returned "transparent" if I put the css style in the head. If I use in-
> > line css style, it works
> > fine.
>
> > Thanks,
>
> > John
>
> > On Jan 13, 10:42 am, John Arrowwood <jarro...@gmail.com> wrote:
> > > Make sure you are passing in a document node and not a jQuery object.
>
> > > if ( elem instanceof jQuery ) elem = elem.get(0);
>
> > > If you were passing in a jQuery object, the 'parent = parent.parentNode'
> > > line would immediately set parent to null.
>
> > > Also, shouldn't your getColor function return the color if it is set on
> > > elem, too, instead of always looking up the chain?  Doesn't it make more
> > > sense to have one call, rather than putting some of your logic in the
> > > function, and some outside of it?
>
> > > function getColor( of, what ) {
> > >   var elem = of;
> > >   if ( elem instanceof jQuery ) elem = elem.get(0);
> > >   var color = null;
> > >   while ( elem != null ) {
> > >     color = $(elem).css(what);
> > >     if ( color != '' && color != 'transparent' ||
> > > jQuery.nodeName(elem,'body') ) break;
> > >     elem = elem.parentNode;
> > >   }
> > >   return color;
>
> > > }
> > > On Tue, Jan 12, 2010 at 11:12 AM, John <john.jian.f...@gmail.com> wrote:
> > > > Sorry, I have to come back for this question. I have really wired
> > > > problem.
>
> > > > I implemented the getColor similar to the jQuery color plugin as
> > > > follows,
>
> > > > function getColor(elem, cssName){
> > > >  var color = null;
>
> > > >  if (elem != null) {
> > > >       var parent = elem.parentNode;
>
> > > >       while (parent != null) {
> > > >           color = $(parent).css(cssName);
> > > >          //or
> > > >          // color = jQuery.curCSS(parent, cssName);
> > > >           if (color != '' && color != 'transparent' || jQuery.nodeName
> > > > (parent, "body"))
> > > >               break;
> > > >           parent = parent.parentNode;
> > > >       }
> > > >   }
>
> > > >  return color;
> > > > };
>
> > > > If I use the background color inline such as
> > > > <html>
> > > > <head>
> > > > </head>
> > > > <body>
>
> > > > <div class="categories">
> > > > <div class="content">
> > > > <div class="body">
> > > >      <ul id="category-list">
> > > >              <li class="division">
> > > >                      <ul>
> > > >                      <li class="category selected" style="background-
> > > > color:red;">
> > > >                              <div class="title">
> > > >                                      <a href="/suv" class="category-
> > > > suv">SUVs (6)</a>
> > > >                              </div>
>
> > > >                      </li>
>
> > > >                          <li class="category category_69564">
> > > >                              <div class="title">
> > > >                                      <a href="/4by4" class="category-
> > > > general">4x4 (6)</a>
> > > >                              </div>
>
> > > >                      </li>
> > > >                      <li class="category category_73293">
> > > >                              <div class="title">
> > > >                                      <a href="/hybrid"
> > > > class="category-hybrid">Hybrid</a>
> > > >                              </div>
> > > >                      </li>
> > > >             </ul>
> > > >              </li>
> > > >   </ul>
> > > > </div>
> > > > </div>
> > > > </div>
>
> > > > </body>
> > > > </html>
>
> > > > I can get back the background color of the element "<li
> > > > class="category selected" > correctly, i.e.,
> > > > rgb(255,0,0). However, if I move the css style to the head as follows,
>
> > > > <html>
> > > > <head>
> > > > <style type="text/css">
> > > > .content .division .category.selected {
> > > > background-color: red;
> > > > }
> > > > </style>
> > > > </head>
>
> > > > I always get back the value "transparent" even with the getColor
> > > > method. I couldn't figure out
> > > > what was wrong and please help me with this. How can I get back the
> > > > background-color as
> > > > rgb(255,0,0) or "red" in the latter case.
>
> > > > Thanks in advance,
>
> > > > John
>
> > > > > On Jan 11, 2:31 pm, John Arrowwood <jarro...@gmail.com> wrote:
>
> > > > > > As a QA tester with a lot of test automation experience, a bit of
> > > > advice:
> > > > > > Ask if the product would not ship if it wasn't red.  If the answer
> > is
> > > > no,
> > > > > > then you might not want to waste your time.  Unless you have
> > automated
> > > > > > everything else about the functionality of the application, and are
> > > > looking
> > > > > > for things to automate, but I would be surprised if you had gotten
> > that
> > > > far
> > > > > > already! :)
>
> > > > > > There are some other things you can do, too, to make it easier or
> > > > faster.
> > > > > > If you want to discuss it off-list, email me at j...@irie-inc.com.
>
> > > > > > On Mon, Jan 11, 2010 at 9:54 AM, John <john.jian.f...@gmail.com>
> > > > wrote:
> > > > > > > Thanks for your reply. I will try to see if the background color
> > on
> > > > > > > the parent works or not.
>
> > > > > > > As for checking the "red" color, I need to do a UI test and check
> > if
> > > > > > > the background color
> > > > > > > is set correctly. That is to say, I am testing other people's
> > code
> > > > and
> > > > > > > web page.
>
> > > > > > > Thanks,
>
> > > > > > > John
>
> > > > > > > On Jan 11, 12:41 pm, John Arrowwood <jarro...@gmail.com> wrote:
> > > > > > > > The short answer is because the background color of the item
> > you
> > > > have
> > > > > > > > selected is in fact transparent.
>
> > > > > > > > Your style makes the <li> tag red.  Then you query on a child
> > > > element
> > > > > > > that
> > > > > > > > has no color specified.  The background color of the child
> > element
> > > > is
> > > > > > > > 'transparent' which means that the color of something up the
> > tree
> > > > is what
> > > > > > > > you will see.
>
> > > > > > > > You will never see 'red' by looking at the child element.  But
> > what
> > > > you
> > > > > > > can
> > > > > > > > do (and jquery.color.js does this) is while you get
> > 'transparent'
> > > > then
> > > > > > > you
> > > > > > > > can look at the parent object.  You can walk up the tree until
> > you
> > > > get
> > > > > > > what
> > > > > > > > you are looking for.
>
> > > > > > > > But before you go down that road, why are you looking to see
> > the
> > > > color of
> > > > > > > > the element?  If you can describe what you are trying to do in
> > more
> > > > > > > general
> > > > > > > > terms, someone may be able to give a better suggestion on how
> > to
> > > > > > > accomplish
> > > > > > > > it.
>
> > > > > > > > On Mon, Jan 11, 2010 at 7:39 AM, John <
> > john.jian.f...@gmail.com>
> > > > wrote:
> > > > > > > > > Hi,
>
> > > > > > > > > I used jQuery 1.3.2 and Firefox for the following html
>
> > > > > > > > > <html>
> > > > > > > > > <head>
> > > > > > > > > <style type="text/css">
> > > > > > > > > .content .division .category.selected {
> > > > > > > > > background: red;
> > > > > > > > > }
>
> > > > > > > > > </style>
> > > > > > > > > </head>
> > > > > > > > > <body>
>
> > > > > > > > > <div class="categories">
> > > > > > > > > <div class="content">
> > > > > > > > > <div class="body">
> > > > > > > > >       <ul id="category-list">
> > > > > > > > >               <li class="division">
> > > > > > > > >                       <ul>
> > > > > > > > >                       <li class="category selected">
> > > > > > > > >                               <div class="title">
> > > > > > > > >                                       <a href="/suv"
> > > > class="category-
> > > > > > > > > suv">SUVs (6)</a>
> > > > > > > > >                               </div>
>
> > > > > > > > >                       </li>
>
> > > > > > > > >                           <li class="category
> > category_69564">
> > > > > > > > >                               <div class="title">
> > > > > > > > >                                       <a href="/4by4"
> > > > class="category-
> > > > > > > > > general">4x4 (6)</a>
> > > > > > > > >                               </div>
>
> > > > > > > > >                       </li>
> > > > > > > > >                       <li class="category category_73293">
> > > > > > > > >                               <div class="title">
> > > > > > > > >                                       <a href="/hybrid"
> > > > > > > > > class="category-hybrid">Hybrid</a>
> > > > > > > > >                               </div>
> > > > > > > > >                       </li>
> > > > > > > > >              </ul>
> > > > > > > > >               </li>
> > > > > > > > >    </ul>
> > > > > > > > > </div>
> > > > > > > > > </div>
> > > > > > > > > </div>
>
> > > > > > > > > </body>
> > > > > > > > > </html>
>
> > > > > > > > > I used the following css command to get back the background
> > > > color:
>
> > > > > > > > > $("#category-list > li.division:eq(0) ul > li:eq(0) a").css
> > > > > > > > > ("background-color");
>
> > > > > > > > > but it always returned the value "transparent" instead of the
> > > > "red"
> > > > > > > > > color rgb(255,0,0).
> > > > > > > > > I also tried "backgroundColor" and it did not work either
> > > > > > > > > ("transparent"). How to get back
> > > > > > > > > the correct background color?
>
> > > > > > > > > Thanks in advance,
>
> > > > > > > > > John
>
> > > > > > > > --
> > > > > > > > John Arrowwood
> > > > > > > > John (at) Irie (dash) Inc (dot) com
> > > > > > > > John (at) Arrowwood Photography (dot) com
> > > > > > > > John (at) Hanlons Razor (dot) com
> > > > > > > > --http://www.irie-inc.com/http://arrowwood.blogspot.com/
>
> > > > > > --
> > > > > > John Arrowwood
> > > > > > John (at) Irie (dash) Inc (dot) com
> > > > > > John (at) Arrowwood Photography (dot) com
> > > > > > John (at) Hanlons Razor (dot) com
>
> ...
>
> read more »

Reply via email to