2012-07-08 308 views
3

我有以下適用於Firefox和Internet Explorer的jQuery代碼。它不適用於Chrome,我不知道爲什麼。jQuery代碼適用於Firefox而不適用於Chrome

我試圖改變這種代碼元素的background-image

$(".category-nav").find("a").each(function(index){ 
    if($(this).css("background-color") === "transparent" && !$(this).parent().hasClass("level1")) 
    { 
     $(this).css("background-image", "url(/images/gallery/images/arrow-cat-list-grey.png)"); 
    } 
}); 
+0

我們可以看到你的html嗎? – fedmich 2012-07-08 12:21:58

+1

這裏有一個錯字>>'(「background-color」)===「transparent」'..remove one'=' – 2012-07-08 12:28:28

+2

這不是一個錯字。三重===是很好的JavaScript。 – 2012-07-08 13:05:39

回答

5

瀏覽器返回的背景色爲rgba(0, 0, 0, 0)透明(demo

試試這個代碼,而不是(demo):

$(".category-nav").find("a").each(function(index){ 
    if (/transparent|rgba\(0, 0, 0, 0\)/.test($(this).css("background-color")) && 
      !$(this).parent().hasClass("level1")) 
    { 
     $(this).css("background-image", "url(/images/gallery/images/arrow-cat-list-grey.png)"); 
    } 

}); 
+0

我其實只是第一次自己第一次寫了一個十六進制到rgb顏色轉換器...這是Chrome的新變化嗎?或者,也許我不會經常用JS操作樣式。 – rlemon 2012-07-08 13:26:35

+0

現在剛剛發現了這件事,並且即將發佈解決方案。你抓到我:)。 – 2012-07-08 13:31:21

+0

@rlemon我認爲只有透明才能做到這一點。也許最簡單的方法是將Chrome開發人員工具的顏色設置爲rgb。按F12,點擊元素並選擇任何元素,然後在風格手風琴上點擊齒輪來更改輸出 - http://i50.tinypic.com/beypty.jpg – Mottie 2012-07-08 13:34:01

相關問題