我有一个用于编辑特定元素的 css 的函数。该元素是通过 JQuery 选择的,并存储从二维数组中检索的 css 值。但是,当我在代码中设置 styles
时,它会将 prop
按字面意思作为 "prop"
,而不是作为其字符串值。在调试器中,我看到 prop
确实有一个有效的字符串值,但是在设置 styles
时没有出现。我知道这可能是语法问题。
function foo(selector) {
var element = $(selector);
for (var prop in stylesOld[selector]) { //stylesOld is a 2D array using key / value pairs
if (stylesOld[selector].hasOwnProperty(prop)) {
// here lies the problem
var styles = { prop : stylesOld[selector][prop]};
element.css(styles);
}
}
}
我试过使用 prop.toString()
但这会返回一个错误。提前致谢。
最佳答案
Javascript 对象文字语法仅支持文字键。如果您想要可变键,则必须单独分配值:
var styles = {};
styles[prop] = stylesOld[selector][prop];
关于Javascript 错误地从字面上解析变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27032125/