我有以下功能:
var applyStyling = function (element, object) {
return _.each(object, function (value, key) {
// determine whether the key should be treated as an attribute or style
if(style)
element.style.key = value
element.setAttribute(key, value)
})
}
示例用法类似于
applyStyling('some dom element', {'id' : 'someID', 'zIndex' : 10})
如何检测密钥是否应被视为样式或属性?我只能找到如何检查元素上是否设置了属性/样式。
答案 0 :(得分:1)
[2, 3, 0, 1]
编辑:基于OP评论的修改后的答案
var applyStyling = function (element, object) {
return _.each(object, function (value, key) {
// determine whether the key should be treated as an attribute or style
if(element.hasAttribute(key))
element.setAttribute(key, value)
else if (element.style.hasOwnProperty(key))
element.style[key] = value
})
}
答案 1 :(得分:0)
我担心没有快速回答。您可以列出/检查已定义的属性。但是,您如何预先列出 DOM元素上的用户定义属性或浏览器定义的属性,如样式属性。
你甚至可以为两者使用相同的名称(使用reserve),设置element.zIndex和element.style.id也没有错。
Nice Hack。 预先列出供您使用和滥用。
答案 2 :(得分:0)
var applyStyling = function (element, object) {
for(var key in object) if(object.hasOwnProperty(key)) {
if(element.style[key] !== void 0)
element.style[key] = object[key];
else
element.setAttribute(key, object[key]);
}
}
applyStyling(document.documentElement, {
color: 'red',
title: 'tooltip'
});
Some text
-(void)readAndFetchGroups
{
//Fire up a thread to fetch online groups in background
[self performSelectorInBackground:@selector(fetchOnlineGroupsInBackground) withObject:nil];
}
-(void)fetchOnlineGroupsInBackground
{
[Group fetchOnlineGroups:self];
}