通过javascript onDomReady设置div宽度

通过javascript onDomReady设置div宽度,javascript,html,mootools,Javascript,Html,Mootools,我在一个页面中使用mootools 1.2,在这个页面中,我将js图加载到一个div中,该div本身位于一个表单元格中。图形加载正确,但它比单元格的宽度小得多(图形脚本用于生成与div大小相同的图形) 我的问题是:如何根据父容器的大小动态地设置div的大小(而不是设置固定的div像素宽度) 我想用domready上的mootools setStyle设置div的大小,如下所示(全部包装在domready块中): 当我在没有setStyle的情况下运行页面时,它可以工作,但是当我执行$('my_c

我在一个页面中使用mootools 1.2,在这个页面中,我将js图加载到一个div中,该div本身位于一个表单元格中。图形加载正确,但它比单元格的宽度小得多(图形脚本用于生成与div大小相同的图形)

我的问题是:如何根据父容器的大小动态地设置div的大小(而不是设置固定的div像素宽度)

我想用domready上的mootools setStyle设置div的大小,如下所示(全部包装在
domready
块中):

当我在没有setStyle的情况下运行页面时,它可以工作,但是当我执行
$('my_chart')时,div返回480的宽度来自js控制台。但是,来自同一控制台的
$('my_chart').offsetParent.offsetWidth
返回1100

问题是,当我尝试使用上面的代码设置div大小时,它会抛出一个错误:
uncaughttypeerror:无法读取null的属性“offsetWidth”
我假定是因为尚未绘制div

编辑以添加:如果我将my_图表div的宽度设置为“自动”,我会收到一个错误
未捕获类型错误:无法从图形脚本中读取未定义的属性“length”

谢谢你的帮助

我马上就回来看你

问题是这个工具使用画布。如果需要将画布宽度设置为一个设定值,它会很友好

var c = document.id("mychart");
c.setStyle("width", c.getParent().getSize().x);

new Dygraph(document.id("mychart"),
"Date,Temperature\n" + "2008-05-07,75\n" + "2008-05-08,70\n" + "2008-05-09,80\n"
);
这很好,但调整表大小会使它看起来很奇怪。
使用.getSize()返回具有宽度和高度的x和y属性的对象。不要相信基于css/样式的计算

以下是页面的中间部分:
var c = document.id("mychart");
c.setStyle("width", c.getParent().getSize().x);

new Dygraph(document.id("mychart"),
"Date,Temperature\n" + "2008-05-07,75\n" + "2008-05-08,70\n" + "2008-05-09,80\n"
);