0

我从 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 之前,我将其传递给它。我尝试$.evalJSON使用 jQuery JSON 插件,但它会给出:

SyntaxError: JSON.parse: unexpected character

编辑:我在没有 eval() 的情况下尝试过,但会抛出相同的错误,但当我使用带有斜杠的 css 时不会

我尝试在某处手动添加一个],但显然不起作用,如果我添加两个,它将创建一个我不想要的数组。

我将 CSS 应用于这样的元素:

DOMID = $('#target');
var CSS = eval(" (" +db.data.blocks.css+") ");
this.DOMID.css(CSS);

尝试不带" (", 不带空格, "(".

有任何想法吗?

4

1 回答 1

1

您发布的代码永远不会起作用,因为它被误导了。不需要eval任何东西,即使db.data.blocks.css对字符串进行强制转换(为了放入括号)也会给你返回完全错误的值。

相反,你应该简单地写

this.DOMID.css(db.data.blocks.css);
于 2012-08-16T11:59:22.300 回答