为什么这个变量在JQuery中没有正确传递

VID*_*gnz 3 javascript variables jquery

我有一个简单的JQuery声明......我的问题是,为什么世界上其中一个会失败?

让我们假设变量colorAttributecolor

    $(thisCLass).css( "color", '#'+hex ); // Works when written
    $(thisCLass).css( colorAttribute, '#'+hex ); // Works with variable

    $(thisCLass).css({ "color" : '#'+hex }); // Works when written  
    $(thisCLass).css({ colorAttribute : '#'+hex }); // Does not Work with variable
Run Code Online (Sandbox Code Playgroud)

关于为什么失败的任何想法?

Guf*_*ffa 5

那是因为你不能使用变量来指定对象文字中的名称.

对象文字中的标识符可以使用或不使用引号编写,因此在任何一种情况下都不会将其解释为变量.该对象将以您指定的标识符结束:

{ "colorAttribute" : '#'+hex }
Run Code Online (Sandbox Code Playgroud)

您可以使用变量在对象中设置属性,但是您必须首先创建对象并使用括号语法:

var obj = {};
obj[colorAttribute] = '#'+hex;
$(thisCLass).css(obj);
Run Code Online (Sandbox Code Playgroud)