通过'document.getElementById(o).style [p] = v'更改css样式是否有效?

ano*_*one 4 javascript css function

我们希望从我们的产品中使用的自定义库中修剪一些脂肪.

一种常用的操作是更改对象样式.

通常,我们这样做是通过:

document.getElementById('object').style.property='value';
Run Code Online (Sandbox Code Playgroud)

我刚刚在chromes控制台中测试了以下内容,它有效:

function objStyle(o,p,v){
    document.getElementById(o).style[p]=v;
}

objStyle('object','property','value');
Run Code Online (Sandbox Code Playgroud)

这是一种有效的做事方式吗?

使用这种做事时可以想到的任何陷阱?Crossbrowser兼容性?

Guf*_*ffa 5

是的,这完全有效.您访问的属性.name也可以访问['name'].

这适用于任何对象中的任何属性,例如:

window['alert']('Hello world.');

document['getElementById']('object')['style']['color'] = '#fff';
Run Code Online (Sandbox Code Playgroud)