我正在尝试以下工作:

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

$("#toBeSet").css({
    $marPad[0] : "100px",
    $marPad[1] : "100px"
    })


这样,我希望只使用一个CSS setter。但是Firebug总是告诉我,我不能像$ marPad [0]这样创建CSS选择器。它总是在属性ID之后返回missing:。

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

感谢帮助!

最佳答案

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

var obj = {};

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

$("#toBeSet").css(obj);


也许更好的方法是首先使其成为条件语句的一部分。

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

$("#toBeSet").css($marPad);

09-20 03:13