我有一个简单的 JQuery 语句...我的问题是,为什么其中一个会失败?
假设变量 colorAttribute
是 color
$(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
关于失败原因的任何想法?
最佳答案
那是因为您不能使用变量来指定对象字面量中的名称。
对象字面量中的标识符可以带引号也可以不带引号,因此在任何一种情况下都不会被解释为变量。该对象将以您指定的标识符结尾:
{ "colorAttribute" : '#'+hex }
您可以使用变量来设置对象中的属性,但是您必须先创建对象并使用括号语法:
var obj = {};
obj[colorAttribute] = '#'+hex;
$(thisCLass).css(obj);
关于javascript - 为什么这个变量在 JQuery 中不能正确传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21840336/