2014-07-06 51 views
0

我創建了一個數組來分割一個具有css屬性的字符串,然後將數組傳遞給css方法,但它不起作用。傳遞一個css屬性數組到.css方法

var cssString = "'top':'25px', 'height':'400px'"; 
var cssArray = new Array; 
cssArray = cssString.split(","); 
$("#div").css(cssArray); 

回答

1

您可以將您的字符串轉換爲JSON對象,然後將其傳遞給.css()方法。

var cssString = "'top':'25px', 'height':'400px'".replace(/'/g, '\"'); // replace single quotes 
var jsonStrring = "{" + cssString + "}"; //Create a string in JSON format 
var jsonObject = JSON.parse(jsonStrring); //Convert to JSON object 
$("#div").css(jsonObject); //Pass JSON object 
+0

我也在這個方向思考,但它不是有效的JSON語法。 「SyntaxError:JSON.parse:期望的屬性名或'}'在JSON數據的第1行第2列」 – Guffa

+0

@Guffa,感謝您指出固定的問題(使用單引號)http://jsfiddle.net/7trvW/ – Satpal

+1

哇謝謝你的答案,它完美的作品!我認爲css方法與普通數組一起工作。最後一個問題:爲什麼需要替換單引號?我需要閱讀更多關於json的內容。 – user2409347

0

如果您的字符串是有效的JSON,您可以將它解析爲一個對象並調用$("#div").css(cssJsonObject);

因爲它不是有效的JSON(沒有大括號和錯誤的引號),你需要確保你的字符串是有效的JSON並相應地解析它,或者首先從一個有效的javascript對象開始,像:

var cssObject = {top:"25px", height:"400px"}; 
$("#div").css(cssObject);