传递函数中要更改的样式(高度||宽度)?

传递函数中要更改的样式(高度||宽度)?

问题描述:

如果我从一个功能通过纯字符串(即高度或宽度)AB改变元素的风格 -传递函数中要更改的样式(高度||宽度)?

<html> 
<script type="text/javascript" > 
function B(temp , attributeToChange , val){ 
     temp.style.attributeToChange = val + "px" 
} 

function A(){ 

     var to = 200; 
     B(this , "width" ,400) 
     B(this, "height" , to) 
} 

</script> 
<style type="text/css"> 
    .in{ 
    width: 100px; 
    height: 30px; 
    } 

</style> 


<input class="in" type="button" value="Click Me" onclick="A.call(this)"> 
</html> 

这是不可能的,因为我不能够使用attributeToChange作为一个字符串得到的参数在B()。有没有办法做到这一点(从一个字符串设置一个elem的属性)还是解决方法 - 使用switch (attributeToChange)

+0

temp.style.width = value +'px'。它有什么问题? – Jashwant 2012-01-30 11:54:31

尝试

temp.style[attributeToChange] = val + "px" 

在JavaScript中,a["x"]a.xmean the same thing

enter image description here

“这首歌的名字叫做 '鳕鱼的眼睛'。”

“哦,那是这首歌的名字,是吗?”爱丽丝说,试图感到兴趣。

“不,你不明白,”骑士说,看起来有点烦恼。 “这就是这个名字的名字,这个名字真的是'老年人'。”

“那我应该说‘这就是这首歌叫?’”爱丽丝纠正自己。

“不,你不该:那是另一回事歌曲的名字叫‘方法和手段’:!但这只是它叫什么,你知道。”

“那么,那首歌是什么呢?”爱丽丝说,此时此刻他完全被困惑了。 “我正在为此而战,”奈特说。 “这首歌真的是'坐在大门上',而曲子是我自己的发明。”

在JavaScript中,我们有someObject,它有一个名为width一个属性,这个属性的名称叫做attributeName。然后,

someObject.width == someObject["width"] == someObject[attributeName] 
+0

哇..这是这个简单的呃.. ??!..工作,谢谢..这意味着'样式'被视为JS中的数组? – 2012-01-30 11:53:20

+0

不,'样式'是一个对象,括号表示是对象。有关详细信息,请参阅http://es5.github.com/#x11.2.1。 – georg 2012-01-30 11:54:50

+0

风格是一个js对象,我猜 – Jashwant 2012-01-30 11:55:20