ASP.Net Ajax $ find()Jquery等效
是否有一个JQuery相当于ASP.Net Ajax的$ find()函数?
$() != $find()
因为$find
返回与DIV元素相关的AJAX组件,而不是DOM元素。 您可以构建自己的插件,快捷方式查找方法。
Microsoft创建了$find
作为将ASP.NET AJAX组件链接到DOM的方法。
没有1to1的等价物,但你想要的是$(’选择器’)
查看不同选择器上的文档
$find('MyComponent') would be $('#MyComponent') $find('MyComponent',div) would be $(div).find('#MyComponent')
如果要通过其ASP.NET代码ID而不是生成的ClientID( ctl00_RealId
)查找元素,则可以使用此函数。 它只是查找ID以_{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
,比如说一个面板:
但是在渲染的代码中它出现为: ctl00_content_ctl00_pnlSuccess
调用$$("pnlSuccess")
将找到渲染的面板。
我只是做以下事情,没有麻烦,没有大惊小怪,直截了当。
$('#' + <%=myControl.ClientID%>)
我知道这是一个超过一千五百年的时间,但我想我有你想要的那种解决方案。 如果我是正确的,你正在寻找一个$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解决方案。