再次,如何使用javascript将ct100 ID转换为原始ID?

时间:2010-10-13 13:44:02

标签: javascript asp.net

我在.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>

3 个答案:

答案 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元素的引用