我有一个从对象设置元素样式的问题。在第一个函数中,我用样式代码解析字符串。
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的情况下实现
答案 0 :(得分:2)
应该是selector.style[key]
而不是selector.style.key
。使用.
时,属性名称按字面使用,而不是变量;您必须使用[]
将其评估为变量。
你显然已经知道这一点,因为你写了propertiesList[key]
而不是propertiesList.key
。