So the reason is that: For a molecule to have colors, its electrons must be able to absorb EM waves, be excited, and jump onto the higher energy level. When the electrons descent back to the low energy level, they emit a certain amount of energy as photons. For molecules with C, H, N, etc., the gaps between the lower and the higher energy level are too big to be excited by visible lights. However, they do absorb infrared light and can be excited by ultraviolet light.
Why some molecules have colors: Some molecules such as the red-orange carotenoid, or the pigment in carrots, possess colors and the trick is located on their series of double bonds. The electrons on the pi bonds have much lower gaps between energy levels so they can be easily excited and emit photons within the visible spectrum. LOL White, or even transparent carrots just sound much less delicious.
Glad that I'm leaning new things everyday. Perhaps too much that I can't take them!