我用十六进制颜色代码定义了一个常量,如下所示: -
var textboxModifySuccessColor = '#E7FBBD';
在我的JS代码中,我使用此变量使用jQuery css方法设置背景颜色,如下所示: -
$(this).find('option:selected').css('background-color', textboxModifySuccessColor);
但是,当我尝试使用css
方法检索相同内容时,我会以rgb
格式获取它: -
rgb(10, 36, 106)
我使用了this thread&中提到的功能。 this一个,但它返回#0A246A
而不是#E7FBBD
。我也尝试了CSS Hooks解决方案,但它正在返回highlight
。我应该怎么做以十六进制格式获得完全相同的颜色,即#E7FBBD
?
P.S.-它在IE 7中工作正常,但这个问题始于IE 11。
更新 -
我再次检查了我的代码并发现通过给定方法的转换是完美的,问题是在渲染代码本身时,我已经打印了十六进制颜色(如我所定义的)和它的rgb等价物(由浏览器呈现)如下所示: -
console.log("Before-" + textboxModifySuccessColor);
$(this).find('option:selected').css('background-color', textboxModifySuccessColor);
console.log("AfterSet-" + $(this).find('option:selected').css('background-color'));
这给了我以下的输出: -
Before-#E7FBBD
AftreSet-rgb(10, 36, 106)
但是,当我尝试使用this转换E7FBBD
十六进制代码时,实际的rgb应为:rgb(231,251,189)
。浏览器是否呈现错误?
这是我的JS代码: -
$(document).delegate('.myDDlClass', 'change', function () {
var currentRow = $(this).closest('tr');
var someText= $.trim(currentRow.find('td select.clsTest').val());
$(this).closest('tr').find('td select.clsTest').css("background-color", textBoxOriginalBackgroundColor);
$(this).find('option').css('background-color', textBoxOriginalBackgroundColor);
if (someText!= SelectDefaultValue) {
$(this).find('option:selected').css('background-color', textboxModifySuccessColor); //Problem here
}
});