ASP.Net Ajax $ find()Jquery等效

时间:2009-12-04 19:52:04

标签: asp.net jquery ajax

是否有一个JQuery等效的ASP.Net Ajax的$ find()函数?

$() != $find()

5 个答案:

答案 0 :(得分:8)

$find返回与DIV元素相关的AJAX组件,而不是DOM元素。您可以构建自己的插件,快捷方式使用find方法。

Microsoft创建了$find作为将ASP.NET AJAX组件链接到DOM的方法。

答案 1 :(得分:2)

没有1to1的等值,但你想要的是$('selector')

查看不同docs

上的selectors
$find('MyComponent') would be $('#MyComponent')

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

答案 2 :(得分:2)

我只是做以下事情,没有麻烦,没有大惊小怪,直截了当。

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

答案 3 :(得分:1)

如果要通过其ASP.NET代码ID而不是生成的ClientID(ctl00_RealId)查找元素,则可以使用此功能。它只查找ID以_{the real ID here}结尾的元素:

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")会找到已渲染的面板。

答案 4 :(得分:1)

我知道这是一个超过一千五百年的时间,但我想我有你想要的那种解决方案。如果我是正确的,你正在寻找一个$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解决方案。