从对象设置元素的样式

时间:2015-03-27 12:25:12

标签: 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];

    }
};

但风格不是设定。我怎么能解决这个问题?

P.S。我需要在没有jQuery的情况下实现

1 个答案:

答案 0 :(得分:2)

应该是selector.style[key]而不是selector.style.key。使用.时,属性名称按字面使用,而不是变量;您必须使用[]将其评估为变量。

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