Javascript jquery,在通过id找到控件后对其进行操作

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

我在jquery中找到了一个必需的控件,如下所示

控制源:

<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 %>");