有没有 JQuery 等效于 ASP.Net Ajax 的 $find() 函数?
$() != $find()
由于$find
返回与DIV元素相关的AJAX组件,而不是DOM元素,因此不存在。您可以构建自己的插件来快捷地使用查找方法。
Microsoft创建了$find
作为将其ASP.NET AJAX组件链接到DOM的一种方式。
$('#' + <%=myControl.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;
}
pnlSuccess
,表示一个面板:<asp:Panel ID="pnlSuccess" runat="server"></asp:Panel>
但在渲染的代码中,它会显示为:ctl00_content_ctl00_pnlSuccess
调用$$("pnlSuccess")
将找到该渲染面板。
context
会更合理。 - Mark Ursino我知道这个问题已经拖了很久,但我认为我有你正在寻找的解决方案。如果我没错的话,你正在寻找一个$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解决方案中大有裨益。
$find()
的真正用途了。 - Izzy Rodriguez