在项目中遇到个很奇怪的问题,同样是使用服务器控件,生成html后,第一个页面的id是正确的,第二个生成的id却是乱的:
↑↑↑页面上使用的服务器控件
↑↑↑网页上看第一个页面id是正确的
↑↑↑网页上看第二个页面id和name都是随机生成的
后来查资料发现是因为第二个页面使用了.Master母版页,母版页下使用服务器控件id会被改变的,但是如果我们必须要用到服务器控件,且js中需要调用怎么办呢?
//<%=控件ID.ClientID %>可以得到生成后的服务器控件名
var element = document.getElementById("<%=控件ID.ClientID %>");
如果是单独的js中引用呢?参考:关于在单独的 Js文件中无法使用 <%= %> 的原因及解决方案
<script type="text/javascript">
var element = "#<%= 服务器控件ID.ClientID%>";//在引用js前声明要调用的服务器控件
</script>
<script type="text/javascript" src="../Scripts/独立的js文件.js"></script>
//单独js中调用示例
$(element).click();