1

我正在尝试使用 jQuery 更改背景的颜色。我制作了一个包含颜色名称及其值的数组。

如果我做

console.log(colorValue);

当我这样做时,我得到了我想用来查找相应颜色的类名

console.log(colorArr.colorValue);

我得到一个未定义的,但是当我这样做时

console.log(colorArr.red);

我得到相应的颜色:

function colorChange(){
    $('div.colorpicker ul li a').on('click', function() {
        var colorArr = {'greenyellow': '#d2db46', 'lightgreen': '#8dc13f', 'darkgreen': '#56a174', 'blauw' : '#3199d1', 'darkblue':'#326b9b', 'darkpurple':'#584586' , 'purple':'#985494', 'red':'#ca4538', 'orange' : '#e27a37', 'darkyellow': '#f8c040', 'lightyellow': '#e4de42'};
        var changeBackground = $('div.header_blue, div.reactie, section#adres, section#referenties_single div.pager');
        var changeColor = $('section#tevredenklanten h1, section#referenties_single h2.klant, section#referenties_single .wat_gedaan h2');
        var colorValue = $(this).attr('class');
        console.log(colorValue);
        //console.log(colorArr);
        console.log(colorArr.colorValue);
        //console.log(colorArr.red);
        changeBackground.animate({backgroundColor:colorArr.colorValue}, 600);
    });
}

有谁知道我必须做什么?

4

3 回答 3

4

由于colorValue不是对象键,但它包含要查找的键,因此您需要使用[]符号而不是.符号

console.log(colorArr[colorValue]);

当您说它colorArr.colorValue查找colorValue对象colorArr中调用的键时,该键不存在,因此它返回undefined

于 2013-05-22T12:47:47.617 回答
1

当属性名称存储在另一个变量中时,使用方括号表示法访问您的对象:

colorArr[ colorValue ]

当使用点表示法时,JavaScript 搜索名称为“colorValue”的属性,该名称不存在,因此返回undefined

于 2013-05-22T12:49:05.147 回答
0

试试下面的代码

colorArr[ colorValue ]

我们可以通过传递键来访问对象值

colorArr["greenyellow"]= it yields the corresponding result.
于 2013-05-22T12:50:56.387 回答