2011-05-18 26 views
2

您好我的亲爱的朋友们:
我发现像下面的jQuery所需的控制......jquery,在一个控件上工作,通过id找到它!

控制源:

<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 

与jquer的区别ÿ?
意味着我需要检查上ID或任何一个条件,我想硬编码上的ID是不正确的方法...

问候

+0

哇这就是我能说的.... – mcgrailm 2011-05-18 20:20:28

+0

@mcgrailm - >你是什么意思? – MoonLight 2011-05-18 20:24:13

+0

我只是不明白这个ID。我想我应该很高兴我不'使用ASP似乎对我来说ID应该很简单 – mcgrailm 2011-05-18 20:26:10

回答

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 Web表单将意味着你不能依靠ID那个元素永远是一样的。你将不得不通过它的类(它可以在ASP.Net中可靠地设置)查找特定元素,它是父级。

+0

dear @Rory McCrossan - >谢谢你的回答 - 但.text()不会返回ctl00 $ ContentPlaceHolder1 $ rlvImages $ ctrl0 $ ctrl3 $ lbEdit.i想要一种方法来获得这个字符串 - >输出是那个! – MoonLight 2011-05-18 20:43:17

+0

如果你想得到这个值(尽管我无法想象为什么你需要),那么'$(“#ctl00_ContentPlaceHolder1_rlvImages_ctrl0_ctrl3_lbEdit”)。attr(“href”)'会得到它。然后您需要执行一个正则表达式替换来获取特定的控制值。 – 2011-05-18 20:45:36

0

我想你可能想这样做。 javascript:__ doPostBack('<%= lbEdit.ClientID%>','')

2

当他们是runat="server"时,ASP.Net使用那些复杂的命名模式生成html元素标识,这使得它很难在页面上通过id查找控件。

尝试使用控制ClientID而不是使用此服务器标记的选择:

$('#<%=lbEdit.ClientID %>"); 
相关问题