jquery-.css不起作用会给出一个空值

jquery-.css不起作用会给出一个空值,jquery,css,background,Jquery,Css,Background,我有一个索引,可以根据用户选择的内容更改其模板。我想菜单改变颜色也一旦用户改变其模板。 它可以在所有浏览器中工作,但在IE中,它会告诉我错误“1”为空或不是行return“#”+hex(bg[1])+hex(bg[2])+hex(bg[3]) 这是我的密码 jQuery(document).ready(function(){ var bg = convert(jQuery('#body').css('background-color')); var font =

我有一个索引,可以根据用户选择的内容更改其模板。我想菜单改变颜色也一旦用户改变其模板。 它可以在所有浏览器中工作,但在IE中,它会告诉我错误“1”为空或不是行
return“#”+hex(bg[1])+hex(bg[2])+hex(bg[3])

这是我的密码

jQuery(document).ready(function(){

        var bg = convert(jQuery('#body').css('background-color'));
        var font = convert(jQuery('.left').css('color'));
        if(bg =='#ffffff' || bg=='undefined'){
            bg = '#000000';
            font='#ffffff';
        }


        jQuery('.mainmenu').hover(
            function(){
              var $this = $(this);
              $this.data('bgcolor', $this.css('background-color')).css('background-color', '#FFFFFF' );
            },
            function(){
              var $this = $(this);
              $this.css('background-color', $this.data('bgcolor'));
            }
        ); 
        jQuery('.submenu').hover(
            function(){
                var $this = $(this);
                $this.data('bgcolor2', $this.css('background-color')).css('background-color', bg );
            },
            function(){
                var $this = $(this);
                $this.css('background-color', $this.data('bgcolor2'));
            }
        );
        jQuery('.submenu2').hover(
            function(){
                var $this = $(this);
                $this.data('color', $this.css('color')).css('color', font );
            },
            function(){
                var $this = $(this);
                $this.css('color', $this.data('color'));
            }
        );
    });
    function convert(bg){
        bg = bg.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
        return "#" + hex(bg[1]) + hex(bg[2]) + hex(bg[3]);
    }
    function hex(x) {
        return ("0" + parseInt(x).toString(16)).slice(-2);
    }
</scri
jQuery(文档).ready(函数(){
var bg=convert(jQuery('#body').css('background-color'));
var font=convert(jQuery('.left').css('color'));
如果(bg=='#ffffff'| | bg=='未定义'){
bg='#000000';
字体=#ffffff';
}
jQuery('.mainmenu')。悬停(
函数(){
var$this=$(this);
$this.data('bgcolor',$this.css('background-color')).css('background-color','#ffffffff');
},
函数(){
var$this=$(this);
$this.css('background-color',$this.data('bgcolor');
}
); 
jQuery('.submenu')。悬停(
函数(){
var$this=$(this);
$this.data('bgcolor2',$this.css('background-color')).css('background-color',bg);
},
函数(){
var$this=$(this);
$this.css('background-color',$this.data('bgcolor2');
}
);
jQuery('.subnum2')。悬停(
函数(){
var$this=$(this);
$this.data('color',$this.css('color')).css('color',font);
},
函数(){
var$this=$(this);
$this.css('color'),$this.data('color');
}
);
});
函数转换(bg){
bg=bg.match(/^rgb\(\d+)\s*(\d+)\s*(\d+)$/);
返回“#”+hex(bg[1])+hex(bg[2])+hex(bg[3]);
}
函数十六进制(x){
返回(“0”+parseInt(x).toString(16)).slice(-2);
}

以下是来自以下方面的答案:IE将rgb值转换为十六进制,因此match传递的是不同的值。

您可以在bg上执行console.log以查看它返回的内容吗?当您在
ready
函数之外声明
bg
font
时会发生什么情况,然后定义
convert
方法以使用“bg”以外的内容作为参数名?@TLS我尝试了您的建议,但它返回了此“1”为空或不是对象“@Ohgodwhy我如何执行console.log抱歉,我认为问题出在这个函数上<代码>函数转换(bg1){bg1=bg1.match(/^rgb\(\d+)、\s*(\d+)、\s*(\d+)$/);返回“#”+hex(bg1[1])+hex(bg1[2])+hex(bg1[3])