2013-02-07 46 views
1

我需要這樣的:如何檢查CSS背景顏色是否爲白色?

$('*').each(function() { 
     if($(this).css("background-color") == "#ffffff") { 
      $(this).css("background-color") == "#000000" 
     } 
    });​​​​ 

到的onclick工作的類。

+0

怎麼做,這是平凡一些google.com和jquery.com搜索發現。 –

+0

有比這更好的方法。請解釋一些你確切的問題,所以我們可以提供幫助 – Undefined

+1

我認爲這是一個相當好的問題(它不是一個可以預期的「微不足道的答案」),但它缺少重要的信息,主要是:**描述問題和/或什麼「不起作用」** - 請添加:)另外,我會建議使用樣式表和/或CSS類,如果在所有的選項。它會更快,更易於維護。 – 2013-02-07 00:28:08

回答

2

即使它是正確的(不是),它將是不可靠的,不太可能工作。其理由是,有表示白顏色的幾種方法:

  • white
  • #ffffff及其
  • #fff所有64個的情況下它們的組合和
  • rgb(255,255,255)和所有∞所有8的情況下的組合值之間任意空白的組合
  • rgba(255,255,255,1)和所有∞任意空白的組合值

你可以檢查它是這樣的:

if($(this).css("background-color").match(/^(?:white|#fff(?:fff)?|rgba?\(\s*255\s*,\s*255\s*,\s*255\s*(?:,\s*1\s*)?\))$/i)) 
    this.style.backgroundColor = "#000"; 
+0

請問downvoter請解釋一下嗎? –

+1

我沒有投票,但必須有一種方式來以更清晰的方式獲取(數字)顏色值..也http://jsfiddle.net/hSn9m/似乎表明 - 至少在Safari(最新版本),FF 18和IE 9 - 已標準化。但是,我不知道這個行爲在別處是什麼,或者它是如何定義的。 – 2013-02-07 00:21:05

+0

@pst一些瀏覽器(主要是更新的)會將其標準化爲rgb()格式的不透明顏色,而rgba()則將其轉換爲半透明顏色。但是,舊版瀏覽器不會。這是一個跨瀏覽器的答案。 –