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