访问全局通过php命名的javascript对象

时间:2016-01-11 02:47:11

标签: javascript php jquery mysql

我有一堆CSS属性存储在通过PHP访问的MySQL数据库中。我需要在页面加载完成后将这些属性提供给JavaScript。

所以我做的是.pyc行,将值放在Javascript对象中,如下所示:

foreach

(为了简单起见,我在这里只包含了一个对象属性,但实际上还有更多。)

我的问题是,在运行时,通过JavaScript,我得到了foreach ($cellcontent as $cellproperty) { echo 'var '.$cellproperty->cell_id.' = {cellwidth:"'.$cellproperty->cell_width.'"};'; } 引用,它位于html页面的某个位置,如下所示:

cell_id

所以此时,var dacell = $(this).closest("div"); var cellid = dacell.attr("id"); 等于php输出中cellid的名称。

但是当我尝试通过JavaScript获取对象(var)的属性时,它无法正常工作。当我试图在警报中看到值时,它是未定义的:

cellwidth

我想我此时并没有引用实际的对象,只是试图获取现在变成字符串的属性。

有没有办法找回对象本身的引用?

3 个答案:

答案 0 :(得分:2)

var cellid = dacell.attr("id");

变量cellid是一个字符串。您希望您所查找的变量位于全局命名空间中,您可以通过以下方式访问该命名空间:

window[cellid].cellwidth

答案 1 :(得分:-1)

用如此多的东西污染全局命名空间是一种糟糕的做法。 获取注入JS所需的所有值,创建一个关联数组并将其作为单个JSON注入到页面中。

答案 2 :(得分:-2)

没关系所有人。 eval()javascript函数修复了这一切。

而不是:

警报(cellid.cellwidth);

我做了:

警报(EVAL(CELLID).cellwidth);

一切正常。

感谢您的所有时间。

干杯,

Erick P。