变量作为属性名称
问题描述:
它可以使用变量的值:变量作为属性名称
$("#anything").css({
"top": value
});
但如果我尝试相反:
toporbottom = "top";
$("anything").css({
toporbottom: "50px"
});
它不工作。有没有优雅的解决方案?
答
就你而言,你不需要一个对象,因为你只设置了一个属性。用途:
$(...).css(toporbottom, "50px");
如果你想要一个对象,你将不得不作出一个空的一个第一,然后设置使用[...]
符号属性,并传递obj
。但是,这绝对是矫枉过正这里:
var obj = {};
obj[toporbottom] = "50px"; // `obj["top"]` is the same as `obj.top`
$(...).css(obj);
答
在这种情况下,您可以使用名称和值作为单独的参数来调用css
:
toporbottom = "top";
$("anything").css(toporbottom, "50px");
答
当然是。使用备用.css
语法。
$(document).ready(function(){
var topOrBottom = "top";
$("#changeme").css(topOrBottom, 200);
});
答
对象字面值不支持变量作为关键字。关键应始终保持不变。但是,您可以使用[]
来设置属性。
toporbottom = "top";
var obj = {};
obj[toporbottom] = "50px"; // Line of interest
$("anything").css(obj);
这最好,因为我也可以使用它.animate()!谢谢! – user1261488 2012-03-10 20:53:37