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