Javascript错误地解析变量

时间:2014-11-20 05:02:18

标签: javascript jquery css

我有一个用于编辑特定元素的CSS的函数。该元素通过JQuery选择,并存储从2D数组中检索的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(),但这会返回错误。提前谢谢。

1 个答案:

答案 0 :(得分:3)

Javascript对象文字语法仅支持文字键。如果需要变量键,则必须单独分配值:

var styles = {};
styles[prop] = stylesOld[selector][prop];