2013-05-14 50 views
1
獲得樣式值

我的HTML代碼在這裏如何使用ATTR

<i id="bgcolor" style="background-color: rgb(255, 146, 180)"></i> 

我想使用jQuery ATTR

獲得背景色值我想什麼是波紋管

$("#bgcolor").mouseleave(function(){ 
      var bodyColor = $(this).attr("style"); 

    $("body").css(bodyColor); 



    }); 

但是這個輸出是

background-color: rgb(255, 146, 180); 

和我被添加到.css它不會工作。我如何實現這個任務?

enter image description here

+0

是否有你想用'attr()'而不是'css()'獲取樣式的原因? – 2013-05-14 17:22:17

+0

參考http://api.jquery.com/css/。你會得到解決方案:) – 2013-05-14 17:26:16

回答

10

檢查出的.css文件:http://api.jquery.com/css/

var bodyColor = $(this).css("backgroundColor"); 
+0

我錯了嗎,還是不是'背景顏色'? – 2013-05-14 17:25:19

+5

@Andreas:[無所謂](http://jsfiddle.net/davidThomas/SLFnf/),它們在jQuery下都是有效/等效的。 – 2013-05-14 17:25:51

+0

@AndreasNiedermair從文檔中可以看出:「另外,jQuery可以同樣解釋多字屬性的CSS和DOM格式。例如,jQuery可以理解並返回.css({'background-color')的正確值: '#ffe','border-left':'5px solid #ccc'})and .css({backgroundColor:'#ffe',borderLeft:'5px solid #ccc'})。請注意,使用DOM表示法由於名稱中的連字符,因此屬性名稱周圍的標記是可選的,但使用CSS標記它們是必需的。「 – dwaddell 2013-05-14 17:27:33

1

我相信這應該做的伎倆,更換您的

$("body").css(bodyColor); 

隨着

$("body").attr('style', $(this).attr("style")); 

這應該將樣式更改爲其他對象上的樣式。

1

您可以使用$("#bgcolor").css("backgroundColor");來獲取顏色。

+0

是否有更好的事件,我用colorpicker而不是mouseleave? – 2013-05-14 17:32:39

1

這是你在找什麼(此代碼的工作):

$("#bgcolor").mouseleave(function(){ 
    var bodyColor = $(this).attr("style"); 
    $("body").attr("style", bodyColor); 
}); 

但是,而不是使用attr你應該使用css,所以代碼將是:

$("#bgcolor").mouseleave(function(){ 
    var bodyColor = $(this).css("background-color"); 
    $("body").css("background-color", bodyColor); 
}); 

JSFiddle

+0

有沒有更好的事件,我用colorpicker而不是mouseleave? – 2013-05-14 17:34:08

+0

@天頂,哈哈。 Dilini,這取決於你需要做什麼。你需要什麼? – 2013-05-14 17:41:16

+0

@DiliniWasana:你可以jquery colorpicker插件。 http://www.eyecon.ro/colorpicker/ – 2013-05-14 17:41:25

0

Demo

$("#bgcolor").mouseleave(function(){ 
    var bodyColor = $(this).css("background-color"); 
    $("body").css("background-color",bodyColor); 
});