元素列表之后的SyntaxError:missing]([object Object])

时间:2012-08-16 11:54:39

标签: css json eval

我从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);

在没有" ("的情况下尝试,没有空格"("

任何想法?

1 个答案:

答案 0 :(得分:1)

您发布的代码永远不会有效,因为它被误导了。没有必要eval任何东西,即使有一个字符串强制db.data.blocks.css(为了放入parens)也会给你一个完全错误的值。

相反,你应该简单地写

this.DOMID.css(db.data.blocks.css);