我有一堆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
我想我此时并没有引用实际的对象,只是试图获取现在变成字符串的属性。
有没有办法找回对象本身的引用?
答案 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。