Выбор вложенного элемента с помощью переменных

#jquery

#jquery

Вопрос:

Я пытаюсь написать функцию и для простоты хочу создать несколько переменных для повторного использования, однако я немного запутался, как выбрать элемент, когда родительский элемент является переменным.

Могу ли я сделать что-то вроде:

 var parent_em = $('#my_container'),
    child_em  = $('.my_child_em', parent_em);
  

вместо

 $('#my_container').find('.my_child_em')...
  

или

 $('#my_container .my_child_em')...
  

Комментарии:

1. ДА. Что произошло, когда вы попробовали это?

2. Вы также можете сделать var child_em = parent_em.find(".my_child_em");

3. Спасибо. Я также хотел создать переменную для дочернего элемента, поскольку она будет использоваться в функции позже. Но, в целом, это правильный синтаксис?

Ответ №1:

Если вы рассматриваете первый подход:

 child_em  = $('.my_child_em', parent_em);
  

вам нужно рассмотреть, как работает конструктор jQuery:

jQuery( селектор [, контекст ] ): По умолчанию селекторы выполняют поиск в DOM, начиная с корня документа. Однако для поиска можно задать альтернативный контекст, используя необязательный второй параметр функции $(). Например, для выполнения поиска в обработчике событий поиск может быть ограничен.

Следовательно, это идеальный способ уменьшить контекст, в котором выполняется поиск.