jquery - 无法在 jquery 中访问 asp.net 控件 ID

标签 jquery asp.net

我有这个 html 结构:

<asp:Panel ID="divOne">
  <div class="divSection1">
  <asp:Panel runat="server" id="specialId" class="ClassOne ClassTwo"
    <asp:Label  id="MyLabel"></asp:Label>
    <div id="myDiv" </div>
  </asp:Panel>
  </div>
</asp:Panel> 

我正在尝试访问jquery中的“specialId”,例如$('#specialId')、$('div.specialId'),但没有成功。有人可以建议吗?

最佳答案

我的类似答案是 little more explanation is here

asp.net 中的

runat="server" 向其每个控件添加母版和页面信息。因此,如果您查看 DOM,您的控件将类似于 master_page_ctrl0_specialId[只是一个示例]。

您有几个选择。

选项1:使用客户端 ID - 推荐,但呃..没那么多。我会尽量避免在 JavaScript 中编写 ClientID。

$('#<%= specialId.ClientID %>')

选项2:使用相同的ID - 不推荐,因为它真的很难看。

$('[id$=specialId]')$('[id*=specialId]')

以上选择器是specialID结尾的任何id以及包含<的任何id/strong> specialId 分别。

选项3:使用该类 - 强烈推荐。因为使用类的选择器干净且不复杂。另外,我发现您使用了 class,对于 .net 控件,请使用 CssClass

$('.ClassOne.ClassTwo')

选项4:在控件上使用 .NET Framework 4.0 中引入的 ClientIDMode="Static",以便其 ID保持不变。 - 也推荐。

<asp:Panel runat="server" ClientIDMode="Static" id="specialId" CssClass="ClassOne ClassTwo">
</asp:Panel>

关于jquery - 无法在 jquery 中访问 asp.net 控件 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19860085/

相关文章:

jquery - 从隐藏的 Div 表单中删除值

javascript - 为什么 XMLHttpRequest 不适用于 "www."?

VS 2013 中的 ASP.NET 网站管理员工具

具有特定路径的 C# Path.GetTempFileName()

asp.net - 如何在 SQL 中实现 Excel 文件的批处理或组 ID

jQuery - 从透明到彩色的动画,没有白色闪光?

javascript - 第二次按下后 Jquery Keypress 被识别

javascript - jQuery(手机): button not hiding

c# - 如何让 Gridview 呈现 THEAD?

asp.net - RedirectToAction 不刷新页面