在css方法中传递动态属性

时间:2015-09-02 12:39:03

标签: javascript jquery css

当我在下面这样做时,它不起作用!!能帮到我,为什么会这样呢?

var propertyName = 'left';
var propertyVal = $("body").width();

$('nav').css({ propertyName: propertyVal , 'position': 'absolute'});

2 个答案:

答案 0 :(得分:2)

问题是因为您不能使用您拥有的语法将变量用作对象中属性的名称。相反,您需要使用括号表示法来定义该属性及其值。试试这个:

var cssSettings = { 'position': 'absolute' };
cssSettings[dynCssProperty] = widthMenu;
$('nav').css(cssSettings);

或者,您可以对css()方法进行两次调用,分别设置每个属性:

$('.nav').css('postion', 'absolute').css(dynCssProperty, widthMenu);

答案 1 :(得分:1)

相反,你可以这样做:

$('nav').css(propertyName, propertyVal)
        .css('position', 'absolute');

您还可以使用array表示法添加:

cssProperties[propertyName] = propertyVal