Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法获取属性';1';指未定义的或空的引用_Javascript_Internet Explorer 8 - Fatal编程技术网

Javascript 无法获取属性';1';指未定义的或空的引用

Javascript 无法获取属性';1';指未定义的或空的引用,javascript,internet-explorer-8,Javascript,Internet Explorer 8,我的网站上有一个日历,可以打开一个弹出框,显示RGB颜色选择器。它在除IE8之外的所有浏览器中都能正常工作。我的代码如下 function rgb2hex(rgb) { rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); function hex(x) { return ("0" + parseInt(x).toString(16)).slice(-2); } return "#" + hex(

我的网站上有一个日历,可以打开一个弹出框,显示RGB颜色选择器。它在除IE8之外的所有浏览器中都能正常工作。我的代码如下

function rgb2hex(rgb) {
    rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
    function hex(x) {
        return ("0" + parseInt(x).toString(16)).slice(-2);
    }
    return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
}
这就是错误所在

SCRIPT5007:无法获取未定义或空引用的属性“1”

哪个指向这条线

return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
我不熟悉这段代码,因为它是由我工作场所的其他人完成的,他已经休假了几周。如果有人能帮我指出正确的方向,我将不胜感激

编辑

这是调用函数的地方。当我在IE8中运行console.log(bgColor)时,它显示为#rgb(238238238238),所以我不明白为什么它不工作。也许是我太傻了,但我一辈子都看不见

$('.period_day').click(function(e) {
    var bgColor = $(this).css('background-color');

if (rgb2hex(bgColor) == "#eeeeee") {
    $('.colour_picker').css('background-color', '#ff0000');
    $('#cal_colour_val').val('#ff0000');
} else {
    $('.colour_picker').css('background-color', bgColor);
    $('#cal_colour_val').val(bgColor);
}
});

该错误意味着正在使用与正则表达式不匹配的参数调用
rgb2hex
函数。匹配失败将导致变量
rgb
为空,并且该代码不会检查这种可能性


因此,真正的问题可能在于调用函数的代码。

如果
bgColor
已经是十六进制(
#eeeeeee
),那么当您将它传递到
rgb2hex
时,它不工作的原因应该很明显。对不起,控制台.log(bgColor)显示为rgb(238238238238238)。经过rgb2hex之后,它是#eeeeee@Pooshonk
console.log(bgColor)
是否专门在Internet Explorer中显示该结果?不同的浏览器报告的颜色不同。@Pointy它在所有浏览器中显示的颜色完全相同browsers@Pooshonk:如果引发异常,它如何通过
reg2hex
?请记录输入的
rgb
参数,并公布导致错误的参数。@Pooshonk太棒了!如果您通过编辑问题或添加评论来总结您发现的内容,那么将来可能会对其他人有所帮助。