2017-08-14 36 views
1

我将设置html对象的属性。指示html对象的各种属性

var property1 = 'style.visibility'; 
var property2 = 'style.display'; 
var property3 = 'style'; 

我试过下面的东西。

第一;

1; object[property1] = 'visible'; 
2; object[property2] = 'block'; 
3; object[property3].display = 'none'; 

秒;

1; object.property1 = 'visible'; 
2; object.property2 = 'block'; 
3; object.property3.display = 'none'; 

在我的情况下只有first;3;工作得很好。
有没有什么方法可以轻松表示html对象的属性?

回答

1

您可以使用reduce()创建函数来访问嵌套属性。

var property1 = 'style.visibility'; 
 
var property2 = 'style.display'; 
 
var property3 = 'style'; 
 

 
var obj = {style: {visibility: 1, display: 2}} 
 

 
function getProp(prop, obj) { 
 
    return prop.split('.').reduce(function(r, e) { 
 
    return r[e] 
 
    }, obj) 
 
} 
 

 
console.log(getProp(property1, obj)) 
 
console.log(getProp(property2, obj)) 
 
console.log(getProp(property3, obj))

+0

谢谢'reduce'将是我的编程大力支持。 –