Javascript 错误地从字面上解析变量

标签 javascript jquery css

我有一个用于编辑特定元素的 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/

相关文章:

javascript - 浏览器窗口之间是否可以进行基于事件的通信?

css - 在 2 div 之间画圈

css - 移动 safari 中的背景图片不够平铺

css - Bootstrap 4 居中列表在 col 中,左对齐列表中的文本

javascript - 仅获取大括号内的字符串

javascript - 如何在 Javascript 中执行线程

javascript - HTML 下拉元素点击后消失

javascript - 如何从 Sharepoint 文档库文件夹中检索文件

javascript - 如何将这三个功能重构为一个?

javascript - jquery中的点击事件比较