jquery 获取元素color值,统一成HEX格式(#000000)
在用jquery获取元素的color值时,不同浏览器获取的数据不统一
例如:
IE8: $(this).css("color") -------> '#808080'
IE9+:$(this).css("color") -------> rgb(121,121,121)
FF,Chrome:$(this).css("color") -------> rgb(121,121,121)
在直接进行字符串比较时,$(this).css("color")不知道为嘛 与' rgb(121,121,121)'一直不相等,在网上找到一段Js,将color值全部转为统一的#808080
//将rgb颜色转为hex颜色(带#号的)
$.fn.getBackgroundColor = function() {
var rgb = $(this).css('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;
}
//调用
$(this).getBackgroundColor();

浙公网安备 33010602011771号