变量作为属性名称

时间:2012-03-10 20:26:45

标签: javascript jquery

可以将变量用作值:

$("#anything").css({
    "top": value
});

但如果我尝试相反的话:

toporbottom = "top";
$("anything").css({
    toporbottom: "50px"
});

它不起作用。有优雅的解决方案吗?

4 个答案:

答案 0 :(得分:1)

在您的情况下,您不需要对象,因为您只设置了一个属性。使用:

$(...).css(toporbottom, "50px");

如果你想要一个对象,你必须先制作一个空对象,然后使用[...]表示法设置属性,然后传递obj。但这绝对有点过分了:

var obj = {};
obj[toporbottom] = "50px"; // `obj["top"]` is the same as `obj.top`
$(...).css(obj);

答案 1 :(得分:1)

在这种情况下,您可以使用名称和值作为单独的参数调用css

toporbottom = "top"; 
$("anything").css(toporbottom, "50px");

答案 2 :(得分:1)

当然可以。使用备用.css语法。

$(document).ready(function(){
    var topOrBottom = "top";

    $("#changeme").css(topOrBottom, 200);
});

答案 3 :(得分:1)

对象文字不支持变量作为键。密钥应始终保持不变。但是,您可以使用[]设置属性。

toporbottom = "top";
var obj = {};
obj[toporbottom] = "50px"; // Line of interest
$("anything").css(obj);