javascript - 从对象中设置元素的样式

标签 javascript css dom


我在为对象中的元素设置样式时遇到问题。在第一个函数中,我用样式代码解析字符串。

parseCheckingStyle: function(properties) {
    var propertiesList = {},
    tempArr=properties.split(/\s*;\s*/, this.length);
    tempArr.forEach(function(element, value, array){
        var splittedTempArr = element.split(/\s*:\s*/);
        propertiesList[splittedTempArr[0]] = splittedTempArr[1];
    });
    return propertiesList;
};

例如

parse('background: #ccc; color: #fff;')

返回

{background: "#ccc", color: "#000"}

然后,通过这个函数,我尝试将这个对象设置为元素的样式:

setCheckingStyle: function(selector, properties) {
    var propertiesList = this.parseCheckingStyle(properties);
    for (var key in propertiesList){
        selector.style.key = propertiesList[key];

    }
};

但风格不是固定的。我该如何解决这个问题?

附言我需要没有 jQuery 的实现

最佳答案

它应该是 selector.style[key] 而不是 selector.style.key。当您使用 . 时,属性名称按字面意义使用,而不是用作变量;您必须使用 [] 将其作为变量求值。

您显然已经知道这一点,因为您编写的是 propertiesList[key] 而不是 propertiesList.key

关于javascript - 从对象中设置元素的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29300629/

相关文章:

javascript - 用户更改文本框值时的 jQuery/Javascript 函数

javascript - 在子标题之间选择相邻的 sibling 作为单独的组?

javascript - DOM 元素原型(prototype)

javascript - 禁用默认功能jquery

css - 如何转换不透明度以显示另一个 div?

javascript - 如何运行刚刚从 BHO 动态插入的 <script> 标记

javascript - DatePicker 日期错误地绑定(bind)到 textbox-1 ?提供 fiddle

JavaScript getElementById().innerHTML=data.body.result 不断重复...如何修复?

javascript - 在 JQuery Cycle 中如何获取当前幻灯片的 src?

javascript - 使用 JavaScript/jQuery 删除或替换样式表(<link>)