2014-02-16 78 views
0

http://jsfiddle.net/EBPg9/2/文本的顏色設置爲一個父div的背景顏色

我工作的一個小項目,我有多個五彩項目,標籤在其中。我不想爲文本和背景指定我的顏色,而只想獲取父div的背景顏色並將其分配給我的文本的顏色。

我目前的jQuery看起來是這樣的:

$(".infobox").each(function() { 
    var tagcolor = $(this).closest('.info').css('background'); 
    $(this).css('color',tagcolor); 
    alert(tagcolor); 
}); 

我的HTML是

<div class="info" style="background: #408FCE;"> 
    <div class="infobox"> 
     tags 
    </div> 
</div> 

正如你可以從我的jQuery看,我創建了一個警報,將顯示我的變量「的價值tagcolor「,奇怪的是它似乎獲得了所有其他不需要的CSS值,即使我指定了」Background「。我無法弄清楚我做錯了什麼,我該如何解決這個問題?

編輯:這裏有一些研究;

What is the difference between background and background-color

Apparantly 「背景」 返回一堆不同的東西。

+0

哇!看看所有的答案!這就像喂鴿子在公園裏。 –

回答

0

Fiddle Demo

使用background-color代替background

var tagcolor = $(this).closest('.info').css('background-color'); 

看到的background

.css('background-color')回報所有background親所有屬性這是由你設置的和browser

+0

爲什麼降票?我錯過了什麼 ??向下選民請發表評論。 –

+1

不知道爲什麼有人會downvote。由於你是唯一一個真正包括爲什麼會這樣工作的人,所以我投票贊成。打開時我會選擇最佳答案。 –

0

您需要使用的background-color代替background

$(".infobox").each(function() { 
    var tagcolor = $(this).closest('.info').css('background-color'); 
    $(this).css('color',tagcolor); 
    alert(tagcolor); 
}); 

Fiddle Demo

檢索速記CSS屬性(如保證金,背景, 境),儘管功能在一些瀏覽器,不保證。 (來自:http://api.jquery.com/css/

0

改爲使用背景顏色,它會工作。

$(".infobox").each(function() { 
    var tagcolor = $(this).closest('.info').css('background-color'); 
    $(this).css('color',tagcolor); 
    alert(tagcolor); 
}); 

<div class="info" style="background-color: #408FCE;"> 
    <div class="infobox"> 
     tags 
    </div> 
</div> 
0

試試這個請:

$(".infobox").each(function() { 
    var tagcolor = $(this).closest('.info').css('backgroundColor'); 
    $(this).css('color',tagcolor); 
    alert(tagcolor); 
}); 
+1

背景是一種有點複合的CSS風格,作爲backgroundColor是顏色的具體屬性 – Popo

+1

@AlexanderLozada'背景'是一種速記方法,它設置不同的屬性,其中之一是'background-color'。因此你不能將'color'的值設置爲'background'的值。 –

0

background不只包含的顏色多了不少!

嘗試指定background-color

$(".infobox").each(function() { 
    var tagcolor = $(this).closest('.info').css('background-color'); 
    $(this).css('color',tagcolor); 
    alert(tagcolor); 
}); 

DEMO

0

試試這個

$('.infobox').each(function(index, element) { 
     $(this).css({ 
      color : $(this).parent().css('background-color') 
     }) 
    }); 

Demo

0

嘗試使用的背景顏色,而不是背景

1

您可以使用「background」屬性適用於相關的背景,如一串值:

background: #123456 url('http://www.path.to.your.image.com') left top no-repeat; 

這比要短得多:

background-color:#123456; 
background-image:'http://www.path.to.your.image.com'; 
background-position:left top; 
background-repeat:no-repeat; 

當您檢索「background」屬性,您將獲得所有值(如果未指定,則爲默認值)。而只是查詢css「background-color」屬性。