HTML,jQuery,color怎么计算的啊

提问者:c284290231 提问时间:2015年04月27日 人气:2
用户提问
下面的例子将返回首个匹配元素的 background-color 值:
<!DOCTYPE html>
<html>
<head>
<script src="/jquery/jquery-1.11.1.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
alert("Background color = " + $("p").css("background-color"));
});
});
</script>
</head>
<body>
<h2>这是标题</h2>
<p style="background-color:#f5c000">这是一个段落。</p>
<p style="background-color:#00ff00">这是一个段落。</p>
<p style="background-color:#0000ff">这是一个段落。</p>
<p style="background-color:#0f2345">这是一个段落。</p>
<p style="background-color:#c04a1f">这是一个段落。</p>
<button>返回 p 元素的背景色</button>
</body>
</html>

这里怎么计算的啊 元素的 background-color 值
alert("Background color = " + $("p").css("background-color"));
推荐答案
$.fn.getBackgroundColor = function() {
     var rgb = $(this).css('background-color');
     if(rgb >= 0) return rgb;//如果是一个hex值则直接返回
    else{
         rgb = rgb.match(/^rgb(\d+),\s∗(\d+),\s∗(\d+)$/);
         function hex(x) {return ("0" + parseInt(x).toString(16)).slice(-2);}
         rgb= "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
     }
     return rgb;
 }

可以用这个对象函数获取,因为浏览器不兼容,所以返回的属性值是不同的,这个函数可以解决

辅助答案
用户:wuxiuhe
2015年05月05日
background-color 是 string
是无法计算的
获取 background-color
var bgc = $('p').eq(0).css('backgroundColor');
alert( "Background color = " + bgc);
这里的eq(0)是指的第一个p元素

在css()方法中,如果属性中带有“-”符号,例如font-size和background-color属性,如果在设置这些属性的值的时候不带引号,那么就要用驼峰式写法,比如上面的代码,如果带上了引号,既可以写成“'background-color'”,也可以写成“'backgroundColor'”。