2012-09-30 50 views
1

我试图让元素的背景颜色的jQuery - 获得元素的背景颜色以十六进制

$(document).ready(function(){ 
    $.each('.log-widget',function(){ 
    console.log($(this).css('backgroundColor')); 
    //$(this).css({'box-shadow':'1px 1px 20px'+}); 
    }); 
    }); 

并不作品它把我送回去:TypeError: invalid 'in' operand a

我想抓住每一个背景颜色元素并将其返回到十六进制颜色。

回答

3

你正在迭代一个不是你想要的字符串。你想.each

$(".log-widget").each(function() { ... }); 

或者,你可以使用$.each,而是用一个jQuery集:

$.each($(".log-widget"), function() { ... }); 

在任何情况下,你会创建从选择串一组。

2

由于@pimvdb指出,您的.each语法是错误的。但是,要返回十六进制颜色,没有原生方式。你必须自己做转换。看一下类似问题的这个答案:little link

+1

+1,好点。我注意到,在Chrome上,您链接的解决方案仅占DOM中的元素。断开连接的元素似乎没有像'red'这样的颜色转换为十六进制/ rgb。 – pimvdb

+0

@pimvdb是的,[看到这个](http://stackoverflow.com/questions/12660784/)。 – Chris

相关问题