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();

  

posted @ 2015-01-19 15:19  我的梦想在起航  阅读(757)  评论(0编辑  收藏  举报