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