javascript - 如何将变量传递给 javascript 中的样式属性?

标签 javascript html css

如果问题的措词不正确,我深表歉意。

基本上我想通过传递一个变量来指定我想在函数中更改什么样式。

function styleChanger(ele, styleProp, x){
      ele.style.styleProp = x + "px";
}

var box = document.getElementById("box");
var height = 100;
var width = 100;
var top = 500;
var styleProp = [height,width,top];

styleChanger(box, styleProp[0], height);
styleChanger(box, styleProp[1], width);
styleChanger(box, styleProp[2], top); 

我想这样做但是不可能,有什么办法吗?

最佳答案

在这一行:

var styleProp = [height,width,top];

我想你的意思是:

var styleProp = ["height","width","top"];

如果是这样:在 JavaScript 中,您可以使用点分符号和文字 属性名称 (obj.foo),或使用方括号符号和string 属性名称 (obj["foo"])。当然,在后一种情况下,您可以使用任何计算结果为字符串的表达式,包括变量引用。

因此在 styleChanger 中,您可以使用方括号表示法:

ele.style[styleProp] = x + "px";
//        ^------- Not the same `styleProp` as above; this one is
//                 the arg to the `styleChanger` function

由于 styleProp 的混淆,下面是一个更改了数组名称的完整示例:

function styleChanger(ele, styleProp, x){
      ele.style[styleProp] = x + "px";
      //       ^----------- bracketed notation
}

var box = document.getElementById("box");
var height = 100;
var width = 100;
var top = 500;
var styleNames = ["height","width","top"];

styleChanger(box, styleNames[0], height);
styleChanger(box, styleNames[1], width);
styleChanger(box, styleNames[2], top); 

关于javascript - 如何将变量传递给 javascript 中的样式属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22330564/

相关文章:

javascript - 重构时 ReactJS 代码不工作 - 出了什么问题?

CSS responsive : shrink some divs first, 然后其他等等

javascript - 如果使用 prev() 找到序列则添加类

html - 如何使 "Who"后面的行部分在 CSS 中消失?

javascript - .js 文件中的经典 asp 代码

javascript - 保持我的 CSS 即使我在元素外点击

javascript - 如何在 javascript 中创建图像叠加图像

html - 有收据读取的API吗?

javascript - 非 Flash 翻页书 [跨浏览器]

html - 为什么这个菜单导航 <div> 没有居中对齐?