2011-05-18 70 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 %>");