是否有一个JQuery等效的ASP.Net Ajax的$ find()函数?
$() != $find()
答案 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解决方案。