Есть ли эквивалент JQuery функции ASP.Net Ajax $find()?
$() != $find()
Есть ли эквивалент JQuery функции ASP.Net Ajax $find()?
$() != $find()
Нет, поскольку $find
возвращает компонент AJAX, относящийся к элементу DIV, а не элемент DOM. Вы могли бы создать свой собственный плагин, который ускоряет поиск.
Microsoft создала $find
как способ связать свои компоненты ASP.NET AJAX с DOM.
Нет эквивалента 1to1, но то, что вы хотите, это $('selector')
Просмотрите docs на разных selectors
$find('MyComponent') would be $('#MyComponent')
$find('MyComponent',div) would be $(div).find('#MyComponent')
Если вы хотите найти элемент по его идентификатору кода ASP.NET, а не сгенерированным ClientID (ctl00_RealId
), вы можете использовать эту функцию. Он просто ищет элементы с идентификатором, который заканчивается на _{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;
}
Например, скажем, ваш идентификатор в вашем коде pnlSuccess
, скажем, панель:
<asp:Panel ID="pnlSuccess" runat="server"></asp:Panel>
Но в визуализированном коде это выглядит как: ctl00_content_ctl00_pnlSuccess
вызов $$("pnlSuccess")
найдет эту панель.
Я бы просто сделал следующее, без суеты, без суеты, прямо к делу.
$('#' + <%=myControl.ClientID%>)
Я знаю, что время LOOOOOOOONG просрочено, но я думаю, что у меня есть такое решение, которое вы ищете. Если я прав, вы ищете замену jQuery $find
, потому что вы не знаете идентификатор элемента (у которого $find
нет селекторов, насколько я знаю, но jQuery является удивительным с). Я просто столкнулся с этой проблемой, используя элементы управления Telerik на странице SharePoint, поэтому мой идентификатор объекта - это долгий сумасшедший беспорядок, а поскольку Sharepoint 2010 на .NET 3.5, я не могу использовать статический идентификатор.
Решение прост, но на какое-то время оно ломалось. $find()
выполняет поиск по идентификатору, который, к счастью, мы можем вернуть в виде строки через jQuery: $("elem").attr("id")
. Таким образом, в основном мы используем jQuery внутри функции $find
, и это работает. Здесь образец из моего проекта:
var contextMenu = $find($("[id*=mnuContext]").attr("id"));
Это сработало для меня и будет очень помогать мне с остальным решением SharePoint.