ASP.Net Ajax $find() JQuery Equivalent

Есть ли эквивалент JQuery функции ASP.Net Ajax $find()?

$() != $find()

Ответ 1

Нет, поскольку $find возвращает компонент AJAX, относящийся к элементу DIV, а не элемент DOM. Вы могли бы создать свой собственный плагин, который ускоряет поиск.

Microsoft создала $find как способ связать свои компоненты ASP.NET AJAX с DOM.

Ответ 2

Нет эквивалента 1to1, но то, что вы хотите, это $('selector')

Просмотрите docs на разных selectors

$find('MyComponent') would be $('#MyComponent')

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

Ответ 3

Если вы хотите найти элемент по его идентификатору кода 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") найдет эту панель.

Ответ 4

Я бы просто сделал следующее, без суеты, без суеты, прямо к делу.

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

Ответ 5

Я знаю, что время 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.