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

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

10-02 13:08