我在.aspx页面中有一个标签元素:
<a id="loginLink" runat="server" class="loginLink" href="#" onclick="$('registerform').hide(); $('signin').show(); this.style.display='none'; $('back').show(); $('reg-signin-email').focus(); return false">Already signed up? Log in here</a>
并尝试获取loginLink.ClientID,但它会回吐ct100_main_loginLink。如何在同一个aspx页面中获得原始的“loginLink”ID?
尝试var ctrl = document.getElementById('&lt;%#loginLink.ClientID%&gt;'); 它没有用..
示例:
<asp:Content runat="server" ContentPlaceHolderID="Main">
<a id="loginLink" runat="server" class="loginLink" href="#" onclick="$('registerform').hide(); $('signin').show(); this.style.display='none'; $('back').show(); $('reg-signin-email').focus(); return false">Already signed up? Log in here</a>
<script type="text/javascript"> alert('diplay here original loginLink ID instead of ct100_Main_LoginLink'); </script>
</asp:Content>
答案 0 :(得分:2)
如果您知道名称,并且这是您希望在js中可用的名称,则只需在js中输入即可。或者,如果您希望控件提供自己的ID,则可以执行
<script type="text/javascript">
alert('<% =loginLink.ID %>');
</script>
虽然我没有看到这一点。如果您需要在javascript例程中获取元素,则需要ClientID
值,因为在我给出的示例中,页面上没有任何带有短格式id的元素。
答案 1 :(得分:0)
您需要编写'<%# loginLink.ClientID %>'
,并且只能在原始ASPX页面中编写它。 (不是外部JS文件)
如果您想要获取原始ID(永远不会显示在客户端上),请使用loginLink.ID
。
答案 2 :(得分:0)
如果您使用像FireBug这样的工具,您会看到客户端的实际ID输出是在ASP.NET页面中使用ct100 ....的长ID。
除非使用Dot.NET 4.0并控制客户端模式,否则通常不会将loginlink返回给客户端。
在您的示例中,var ctrl应该包含对DOM元素的引用