我正在尝试使用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);
});
}
有谁知道我必须做什么?
答案 0 :(得分:4)
由于colorValue
不是对象键,但它包含要查找的键,因此您需要使用[]
表示法而不是.
表示法
console.log(colorArr[colorValue]);
当您说colorArr.colorValue
时,它会在对象colorValue
中查找名为colorArr
的密钥,该密钥不存在,因此会返回undefined
答案 1 :(得分:1)
当属性名称存储在另一个变量中时,使用括号表示法访问对象:
colorArr[ colorValue ]
使用点符号时,JavaScript会搜索名称为“colorValue”的属性,该属性不存在,因此会返回undefined
。
答案 2 :(得分:0)
尝试以下代码
colorArr[ colorValue ]
我们可以通过传递密钥
来访问对象值colorArr["greenyellow"]= it yields the corresponding result.