我創建了一個數組來分割一個具有css屬性的字符串,然後將數組傳遞給css方法,但它不起作用。傳遞一個css屬性數組到.css方法
var cssString = "'top':'25px', 'height':'400px'";
var cssArray = new Array;
cssArray = cssString.split(",");
$("#div").css(cssArray);
我創建了一個數組來分割一個具有css屬性的字符串,然後將數組傳遞給css方法,但它不起作用。傳遞一個css屬性數組到.css方法
var cssString = "'top':'25px', 'height':'400px'";
var cssArray = new Array;
cssArray = cssString.split(",");
$("#div").css(cssArray);
您可以將您的字符串轉換爲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
如果您的字符串是有效的JSON,您可以將它解析爲一個對象並調用$("#div").css(cssJsonObject);
。
因爲它不是有效的JSON(沒有大括號和錯誤的引號),你需要確保你的字符串是有效的JSON並相應地解析它,或者首先從一個有效的javascript對象開始,像:
var cssObject = {top:"25px", height:"400px"};
$("#div").css(cssObject);
我也在這個方向思考,但它不是有效的JSON語法。 「SyntaxError:JSON.parse:期望的屬性名或'}'在JSON數據的第1行第2列」 – Guffa
@Guffa,感謝您指出固定的問題(使用單引號)http://jsfiddle.net/7trvW/ – Satpal
哇謝謝你的答案,它完美的作品!我認爲css方法與普通數組一起工作。最後一個問題:爲什麼需要替換單引號?我需要閱讀更多關於json的內容。 – user2409347