首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在函数中设置td offSetWidth

在函数中设置td offSetWidth
EN

Stack Overflow用户
提问于 2016-04-12 02:38:11
回答 2查看 296关注 0票数 0

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

这是可行的:

代码语言:javascript
复制
document.getElementById("myTD").offsetWidth = document.getElementById('<%= ID=myGridView.ClientID %>').rows[0].cells[0].offsetWidth;

这不会:

代码语言:javascript
复制
function myfunction() { document.getElementById("myTD").offsetWidth = document.getElementById('<%= ID=myGridView.ClientID %>').rows[0].cells[0].offsetWidth; };

已成功从代码后台调用该函数

代码语言:javascript
复制
 protected void Page_Load(object sender, EventArgs e)
    {
        ScriptManager.RegisterStartupScript(this.Page, this.GetType(),
                "myfunction",
                "myfunction();",
                true);
    }
EN

回答 2

Stack Overflow用户

发布于 2016-04-12 02:49:03

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

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

票数 0
EN

Stack Overflow用户

发布于 2016-04-12 20:39:25

我能够让它工作,但是TD元素比gridview元素稍微宽一些。我相信这与填充有关:

代码语言:javascript
复制
function MyFunction(){ document.getElementById("myTd").width = document.getElementById('<%= ID=myGridview.ClientID %>').rows[0].cells[0].offsetWidth; };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36556610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档