2009-12-04 85 views
11

是否存在與ASP.Net Ajax的$ find()函數相當的JQuery?

$() != $find() 

回答

2

沒有一個1to1等價的,但你想要的是$(「選擇」)

在不同selectors

$find('MyComponent') would be $('#MyComponent') 

$find('MyComponent',div) would be $(div).find('#MyComponent') 
1

如果你想找到一個元素時退房docs通過它的ASP.NET代碼ID而不是生成的ClientID(ctl00_RealId),那麼你可以使用這個函數。它只是看起來對於具有與_{the real ID here}結尾的ID元素:

var $$ = function (id, context) { 
    var $ = (jQuery) ? jQuery : return ; 
    var el = $("#" + id, context); 
     if (el.length < 1) 
     el = $("[id$=_" + id + "]", context); 
    return el; 
} 

例如,假設你的代碼中的ID是pnlSuccess,說一個面板:

<asp:Panel ID="pnlSuccess" runat="server"></asp:Panel> 

但是在渲染代碼,它出現爲:ctl00_content_ctl00_pnlSuccess

調用$$("pnlSuccess")會發現該渲染面板。

+0

這可能是非常不可靠的UserControl情況下,很多控件可能以相同的ID結尾,但具有不同的前綴 – 2009-12-04 20:14:32

+0

在這種情況下,使用'context'會更有意義。 – 2009-12-04 20:17:44

+2

是。我知道。實際上,我一直在使用$(「input [name * = pnlSuccess])來查找控件,我真正想要的是$ find()返回的對象,它似乎是$ find()在ASP中返回的對象。 Net Ajax與Jquery返回的$()不同,我在使用Telerik Controls時明顯注意到了這一點。 – pauldomag 2009-12-06 11:07:36

1

我只是做了以下,沒有不管,沒有大驚小怪,直接點。

$('#' + <%=myControl.ClientID%>) 
+0

假設你在頁面上呈現的代碼是在on,而不是在外部JavaScript文件中 – 2009-12-04 20:14:36

+2

yup。i我知道。實際上,我一直在使用$(「input [name * = pnlSuccess])來查找控件,我真正想要的是$ find()返回的對象,它似乎是$ find()在ASP中返回的對象。 Net Ajax與Jquery返回的$()不同的對象不同,我在使用Telerik Controls的時候注意到了這一點 – pauldomag 2009-12-06 11:08:14

+0

這是因爲$ find()只返回一個DOM元素,而$()返回一個包裝DOM元素數組的jQuery對象但是,$()同樣有用,實際上可能更有用, – 2009-12-07 15:08:07

8

沒有因爲$find回報AJAX組件相關的DIV元素,而不是DOM元素。你可以建立自己的插件來快速找到find方法。

Microsoft創建了$find作爲將其ASP.NET AJAX組件鏈接到DOM的一種方式。

+1

最後有人知道真正使用'$ find()' – 2012-08-09 04:15:39

1

我知道這是一個過期的LOOOOOOOONG,但我想我有你想要的那種解決方案。如果我是正確的,你正在尋找一個$find jQuery替代品,因爲你不知道元素的ID(據我所知,其中$find沒有選擇器,但jQuery非常棒)。我剛剛在SharePoint頁面上使用Telerik控件遇到了這個問題,所以我的對象ID是一個漫長的瘋狂混亂,並且由於SharePoint 2010是在.NET 3.5上,我無法使用靜態ID。

這個解決方案很簡單,但它讓我的腦子有一段時間了。 $find()正在通過ID進行搜索,幸運的是,我們可以通過jQuery返回字符串:$("elem").attr("id")。所以基本上我們所做的就是在$find函數內部使用jQuery,它起作用。下面是從我的項目的樣本:

var contextMenu = $find($("[id*=mnuContext]").attr("id")); 

這爲我工作,並要幫我出了很多與我的SharePoint解決方案的其餘部分。