我从PHP返回JSON,它运行正常, 但是当数据为空时,我填写默认的JSON数据,用于在jQuery选择的元素上应用.css,如下所示:
db.data = { "blocks" : {"css" : {"background-color" : "purple" }}};
(编辑:我的数据库中的css实际上包含斜杠并且与eval()一起使用:"css":"{ \"background-color\" : \"grey\" }
)
如果我是console.log它,FF会将它显示为一个对象(所有绿色和红色,格式正确,可点击/可扩展在firebug中:
Object { background-color= "purple" }
我将eval()
传递给css之前。
我尝试了jQuery JSON插件中的$.evalJSON
,但它会给出:
SyntaxError: JSON.parse: unexpected character
编辑:我在没有eval()的情况下尝试了它但是会抛出相同的错误,但是当我使用斜杠的css时不会这样做
我尝试在某处手动添加]
,但显然不会工作,如果我添加两个,它会创建一个我不想要的数组。
我将CSS应用于这样的元素:
DOMID = $('#target');
var CSS = eval(" (" +db.data.blocks.css+") ");
this.DOMID.css(CSS);
在没有" ("
的情况下尝试,没有空格"("
。
任何想法?
答案 0 :(得分:1)
您发布的代码永远不会有效,因为它被误导了。没有必要eval
任何东西,即使有一个字符串强制db.data.blocks.css
(为了放入parens)也会给你一个完全错误的值。
相反,你应该简单地写
this.DOMID.css(db.data.blocks.css);