我发现了jquery所需的控件,如下所示......
控制源:
<a id="ctl00_ContentPlaceHolder1_rlvImages_ctrl0_ctrl3_lbEdit" class="lbEdit" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$rlvImages$ctrl0$ctrl3$lbEdit','')">ویرایش</a>
jquery代码:
警报($( '一个[ID $ = “lbEdit”]'));
我想知道
之间有什么区别ctl00_ContentPlaceHolder1_rlvImages_ctrl0_ctrl3_lbEdit
和
ctl00$ContentPlaceHolder1$rlvImages$ctrl0$ctrl3$lbEdit
我怎样才能获得
ctl00$ContentPlaceHolder1$rlvImages$ctrl0$ctrl3$lbEdit
用jquery?
意味着我需要检查上层ID或条件中的任何内容,我认为硬编码上层ID不正确...
答案 0 :(得分:2)
使用.NET 4.0并将CliendIDMode设置为Static。
http://weblogs.asp.net/asptest/archive/2009/01/06/asp-net-4-0-clientid-overview.aspx
它将使您的ID更容易从JavaScript中引用。
答案 1 :(得分:2)
首先,ctl00_ContentPlaceHolder1_rlvImages_ctrl0_ctrl3_lbEdit
是元素的HTML Id属性。
ctl00$ContentPlaceHolder1$rlvImages$ctrl0$ctrl3$lbEdit
是元素的内部ASP.Net引用。它对网站的前端毫无用处。
在您的示例中,要使用jQuery选择器获取该元素的文本,您可以使用:
$("#ctl00_ContentPlaceHolder1_rlvImages_ctrl0_ctrl3_lbEdit").text();
值得注意的是,使用ASP.Net webforms意味着你不能永远依赖那个元素的ID。您必须通过它的类(可以在ASP.Net中可靠地设置)以及它的父级来确定该特定元素。
答案 2 :(得分:2)
ASP.Net使用那些错综复杂的命名模式来生成html元素ID,因为它们runat="server"
使得难以用来在页面上通过id查找控件。
尝试使用控件ClientID
代替服务器标记的选择器:
$('#<%=lbEdit.ClientID %>");
答案 3 :(得分:0)
我想你可能想要这样做。 javascript:__ doPostBack('&lt;%= lbEdit.ClientID%&gt;','')