为什么我的document.getElementById找不到控件?

robig 2019-01-05 11:24:22
我服务器端的控件是 动态生成了,按规则生成了许多。

_cell = new TableCell();
_cell.CssClass = "cell_abcd";
_cell.ID = "_cell" + index.ToString("000") + i.ToString("00") + "A";


然后同样还有一批linkButton ,其OnClientClick 调用js的 xuanze函数,参数是对应 cell 控件的ClientID(运行中监测和ID是一样的)

LinkButton _lbABCD = new LinkButton();
_lbABCD.Text = "[ A ]";
_lbABCD.CssClass = "lbcss";
_lbABCD.OnClientClick = "return xuanze(\"" + _cell.ClientID + "\")";


在前端的js函数中代码如下:
function xuanze(obj) {
alert(obj);
var v;
v = document.getElementById(obj);
if (v == null) {
alert("OK");
}
else {
alert("Fail");
}
}


运行中打印obj发现的确是cell的ID,但是紧接着 按此ID找控件却 没有找到,请教原因。

在浏览器打开网页源码,发现这个ID也是有的。
<td id="_cell00000A" class="cell_abcd"><a onclick="return xuanze("_cell00000A");" class="lbcss" href="javascript:__doPostBack('ctl03','')">[ A ]</a></td><td id="_cell00000B" class="cell_abcd"><a onclick="return xuanze("_cell00000B");" class="lbcss" href="javascript:__doPostBack('ctl04','')">[ B ]</a></td><td id="_cell00000C" class="cell_abcd"><a onclick="return xuanze("_cell00000C");" class="lbcss" href="javascript:__doPostBack('ctl05','')">[ C ]</a></td><td id="_cell00000D" class="cell_abcd"><a onclick="return xuanze("_cell00000D");" class="lbcss" href="javascript:__doPostBack('ctl06','')">[ D ]</a></td>

...全文
154 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
robig 2019-01-05
  • 打赏
  • 举报
回复
我靠,原来我把 ok 和fail 写反了,算了算了,散了分吧。 下午结贴
  • 打赏
  • 举报
回复
23333其实这种时候还是调试看v有没有值最好

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧