Javascript jquery,在通过id找到控件后对其进行操作
我在jquery中找到了一个必需的控件,如下所示 控制源:Javascript jquery,在通过id找到控件后对其进行操作,javascript,jquery,jquery-selectors,controls,Javascript,Jquery,Jquery Selectors,Controls,我在jquery中找到了一个必需的控件,如下所示 控制源: <a id="ctl00_ContentPlaceHolder1_rlvImages_ctrl0_ctrl3_lbEdit" class="lbEdit" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$rlvImages$ctrl0$ctrl3$lbEdit','')">ویرایش</a> 及 我怎样才能得到它呢 ctl00$ContentP
<a id="ctl00_ContentPlaceHolder1_rlvImages_ctrl0_ctrl3_lbEdit" class="lbEdit" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$rlvImages$ctrl0$ctrl3$lbEdit','')">ویرایش</a>
及
我怎样才能得到它呢
ctl00$ContentPlaceHolder1$rlvImages$ctrl0$ctrl3$lbEdit
使用jquery?我的意思是我需要检查upper id或其他条件,我认为硬编码upper id不是正确的方式…使用.NET 4.0并将CliendIDMode设置为静态
它将使您的ID更容易从JavaScript中引用。我想您可能希望这样做。
javascript:uu doPostBack('',)首先,
ctl00\u contentplaceholder 1\u rlvImages\u ctrl0\u ctrl3\u lbEdit
是元素的HTML Id属性
ctl00$contentplaceholder 1$rlvImages$ctrl0$ctrl3$lbEdit
是元素的内部ASP.Net引用。它对站点的前端没有任何用处
在您的示例中,要使用jQuery选择器获取该元素的文本,可以使用:
$("#ctl00_ContentPlaceHolder1_rlvImages_ctrl0_ctrl3_lbEdit").text();
还值得注意的是,使用ASP.NETWebForms意味着您不能永远依赖该元素的ID。您必须通过它的类(您可以在ASP.Net中可靠地设置)和它的父元素来精确定位该特定元素。ASP.Net在
runat=“server”
时使用这些复杂的命名模式来生成html元素id,这使得在页面上很难通过id找到控件
尝试改用控件ClientID
使用此服务器标记的选择器:
$('#<%=lbEdit.ClientID %>");
$('#“);
@mcgrailm->你的意思是什么?我只是不明白这个id。我想我应该庆幸我没有使用asp。在我看来,id应该是simple@mcgrailm这是我一直以来对ASP.Net Webforms的一个小问题。MVC允许您完全控制HTML标记的每个部分,并且是在IMO中工作的一个更好的环境。亲爱的@Rory McCross一个->谢谢你的回答-但是.text()不返回ctl00$contentplaceholder 1$rlvImages$ctrl0$ctrl3$lbEdit。我想要一种方法来获取这个字符串->输出就是这样!如果你想得到那个值(尽管我无法想象你为什么需要),那么$(“#ctl00_contentplaceholder 1_rlvImages_ctrl0_ctrl3lbedit”).attr(“href”)
将获得它。然后需要对其执行正则表达式替换以仅获取特定的控制值。
$("#ctl00_ContentPlaceHolder1_rlvImages_ctrl0_ctrl3_lbEdit").text();
$('#<%=lbEdit.ClientID %>");