我已经继承了一些依赖硬编码对象id的令人讨厌的JavaScript项目。
即有很多地方确实是这样ASP.Net从哪里获取其呈现的ID?
var magazine = document.getElementById('repModuleDisplay__ctl3_chkCats_0');
事情时,页面呈现在我的UAT环境的地方,HTML看起来像这样,一切工作正常。
<input id="repModuleDisplay__ctl3_chkCats_0"
type="checkbox" name="repModuleDisplay:_ctl3:chkCats:0"
... etc
然而,当我把它放在我的生产环境中,HTML突然撕心裂肺这样的:
<input id="repModuleDisplay_ctl03_chkCats_0"
type="checkbox" name="repModuleDisplay$ctl03$chkCats$0"
... etc
IDS中差别指的是JavaScript不能找到元素,并失败。
在一个理想的世界,我想放弃了越野车的JavaScript,并再次做正确,但对于一个快速解决,我想知道是什么原因造成这两个环境之间呈现差异。
有没有人有任何想法?
感谢, 尼尔
感谢卢克......唯一潜在的呃逆是有chkCat复选框的负载,并且JavaScript应该只在点击一个特定的时候触发(我知道......我知道......)。我会放弃它,看看我能否实现它。 – NeilD 2010-04-15 16:46:57
@NeilD:另一种可能性(特别是如果复选框包含在中继器等某种容器中)可能是使用JavaScript(或者类似jQuery)在运行时在客户端查找相应的复选框。 – LukeH 2010-04-15 16:56:21