在Jquery中设置CSS属性时如何使用变量?

fre*_*ent 0 css jquery jquery-mobile

我正在努力让以下工作:

var $marPad = $('#wrapper').attr('id') == "overthrow" ? 
      ["margin-top", "margin-bottom"] : ["padding-top", "padding-bottom"];

$("#toBeSet").css({ 
    $marPad[0] : "100px", 
    $marPad[1] : "100px"
    })  
Run Code Online (Sandbox Code Playgroud)

这样我就希望只有一个css setter.然而,Firebug总是告诉我,我不能像$ marPad [0]那样制作一个CSS选择器.它总是返回缺失:属性id之后.

有人可以告诉我我做错了什么,是否有可能还使用变量而不是固定的CSS选择器?

感谢帮助!

小智 5

您需要先创建对象,然后向其中添加属性.

var obj = {}; 

obj[$marPad[0]] = '100px';
obj[$marPad[1]] = '100px';

$("#toBeSet").css(obj);
Run Code Online (Sandbox Code Playgroud)

也许更好的方法是首先让它成为条件陈述的一部分......

var $marPad = $('#wrapper').attr('id') == "overthrow" ? 
      {marginTop:'100px', marginBottom: '100px'} : {paddingTop:'100px', paddingBottom:'100px'};

$("#toBeSet").css($marPad);
Run Code Online (Sandbox Code Playgroud)