Javascript 在函数中设置td offSetWidth

Javascript 在函数中设置td offSetWidth,javascript,asp.net,Javascript,Asp.net,我试图使用javascript设置table td元素的宽度。在函数外部设置时,宽度设置正确。当相同的代码封装在函数中时,td元素的宽度保持不变。我插入了断点,代码似乎被触发了。谢谢你的帮助 这项工作: document.getElementById("myTD").offsetWidth = document.getElementById('<%= ID=myGridView.ClientID %>').rows[0].cells[0].offsetWidth; 因此,服务器调用

我试图使用javascript设置table td元素的宽度。在函数外部设置时,宽度设置正确。当相同的代码封装在函数中时,td元素的宽度保持不变。我插入了断点,代码似乎被触发了。谢谢你的帮助

这项工作:

document.getElementById("myTD").offsetWidth = document.getElementById('<%= ID=myGridView.ClientID %>').rows[0].cells[0].offsetWidth;

因此,服务器调用了javascript。最大的问题是什么时候执行脚本,什么时候执行原始脚本?我猜您的旧脚本是在加载页面后执行的,因此所有引用的元素都存在,并且所有元素都已由浏览器绘制


您的新脚本可能在内容完全加载之前运行,这意味着浏览器找不到引用的元素,因为它尚未加载,或者没有绘制任何内容,因此所有元素都没有宽度。

我可以让它工作,但是TD元素比gridview元素略宽。我相信这与填充有关:

function MyFunction(){ document.getElementById("myTd").width = document.getElementById('<%= ID=myGridview.ClientID %>').rows[0].cells[0].offsetWidth; };
function MyFunction(){document.getElementById(“myTd”).width=document.getElementById('').rows[0]。cells[0]。offsetWidth;};

在javascript中声明myfunction时,请确保使用单词
function
<代码>函数myfunction(){//code}很好,我的实际代码中确实有函数,但是我没有在示例中包含它。谢谢。这似乎是一个范围问题,我需要传入控件吗?当页面加载时,在函数外部运行代码时,您是正确的,因为它存在于aspx标记中,即:一些代码和函数。当从后台代码的Page_load事件执行函数时,我可以使用断点看到gridview宽度具有正确的值,但td值保持不变。可能是gridview已呈现,而表未呈现?我也可以看到tds的值,但它们没有被更新。
 protected void Page_Load(object sender, EventArgs e)
    {
        ScriptManager.RegisterStartupScript(this.Page, this.GetType(),
                "myfunction",
                "myfunction();",
                true);
    }
function MyFunction(){ document.getElementById("myTd").width = document.getElementById('<%= ID=myGridview.ClientID %>').rows[0].cells[0].offsetWidth; };