无法在jquery中访问asp.net控件ID
我有这个HTML结构:
<asp:Panel runat="server" id="specialId" class="ClassOne ClassTwo" <div id="myDiv"
我有这个HTML结构:
<asp:Panel runat="server" id="specialId" class="ClassOne ClassTwo" <div id="myDiv"
我试图在jquery中访问“specialId”,如$(’#specialId’),$(’div.specialId’)但没有成功。 有人可以建议吗?
我的类似答案有更多解释
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 :使用该类 – 强烈推荐。 因为使用类的选择器干净且不复杂。 另外,我看到你使用了class
,使用CssClass
代替.net控件。
$('.ClassOne.ClassTwo')
选项4 :在控件上使用在.NET Framework 4.0中引入的ClientIDMode="Static"
,以使其ID保持不变。 – 也推荐。
您应该使用以下语法使用实际生成的HTML ID
这意味着您需要使用可通过以下语法访问的客户端ID
$('#<%= specialId.ClientID %>')