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

前端之家收集整理的这篇文章主要介绍了无法在jquery中访问asp.net控件ID前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个 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”将master和page信息添加到其每个控件中.所以,如果你看看DOM,你的控件看起来就像这个master_page_ctrl0_specialId [只是一个例子].

你有几个选择.

选项1:使用客户端ID – 推荐但是meh ..不是那么多.我会尽量避免在javascript中编写ClientID.

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

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

$(‘[id $= specialId]’)或$(‘[id * = specialId]’)

上面的选择器是任何以specialID结尾的id和任何分别包含specialId的id.

选项3:使用该类 – 强烈推荐.因为使用类的选择器干净且不复杂.另外,我看到你使用了类,使用CssClass代替.net控件.

$('.ClassOne.ClassTwo')

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

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

猜你在找的jQuery相关文章