如何将json数据发送到jQuery.css()

时间:2011-04-08 09:43:16

标签: javascript jquery

我想将json格式的数据发送到jQuery.css()函数,我不知道该怎么做。 稍后,我将发送更多属性,这只是我的问题的一个例子。

//Sorry, this var x is actually string that i get when i print my json string
var x = {"transform":"rotate(30deg)","-o-transform":"rotate(30deg)"}

//If i try to do something like this wont work
$("#mainImage").css(x);


//but following works
$("#mainImage").css({"transform":"rotate(30deg)","-o-transform":"rotate(30deg)"})

它可能需要做一些jquery接受.css( map )的事情 要设置的属性 - 值对的映射。

我正在尝试发送单个文本字符串,我可以以某种方式将json转换为map吗?

@Pekka是的,我确信$("#mainImage").css(x);无效。

@Felix这就是我通过调用json = JSON.stringify(data);得到的对不起,如果它不是json数据,我是js newbie ..

3 个答案:

答案 0 :(得分:3)

您之前应解析 not stringify JSON。我尝试了这个它是有效的。

var json = '{ "display": "none" }';
var cssObject = JSON.parse(json);
$("#mainImage").css(cssObject);

答案 1 :(得分:2)

我刚试过这段代码:

$(document).ready(function() {
        var x = {"background-color": "yellow"};
        $('body').css(x);
    });

基本上它起作用了。所以问题可能完全不同。也许你的img元素不存在?

答案 2 :(得分:0)

http://jsfiddle.net/A4azg/


var cssObj = {
      'background-color' : '#ddd',
      'font-weight' : '',
      'color' : 'red',
      "transform":"rotate(30deg)",
      "-o-transform":"rotate(30deg)",
      "-webkit-transform":"rotate(30deg)"
    }
$("#mainImage").css(cssObj);