2012-03-10 172 views
2

它可以使用變量的值:變量作爲屬性名稱

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

但如果我嘗試相反:

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

它不工作。有沒有優雅的解決方案?

回答

1

就你而言,你不需要一個對象,因爲你只設置了一個屬性。用途:

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

如果你想要一個對象,你將不得不作出一個空的一個第一,然後設置使用[...]符號屬性,並傳遞obj。但是,這絕對是矯枉過正這裏:

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

這最好,因爲我也可以使用它.animate()!謝謝! – user1261488 2012-03-10 20:53:37

1

在這種情況下,您可以使用名稱和值作爲單獨的參數來調用css

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

當然是。使用備用.css語法。

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

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

對象字面值不支持變量作爲關鍵字。關鍵應始終保持不變。但是,您可以使用[]來設置屬性。

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