.find() в JQuery не присваивает результат?

135
28 мая 2022, 19:40

Есть такой кусок кода

        this.$root = $(selector);
        this.$wrap = this.$root.find('.wrapper');

И в переменную $wrap не присваивается результат

this.$root.find('.wrapper');

Если выводить его просто в console.log, то видно что элемент оно находит. В чем моя ошибка?

Answer 1
constructor(selector) {
  this.$root = $(selector);
  this.render(); //Сначала рендерим
  this.$wrap = this.$root.find('.dropdown__wrap'); // Потом ищем
}
render() {
  this.$root.html(template());
}
Answer 2

Вам правильно указали в ответе @Ordman. Я лишь перенёс код и добавил комментариев

const template = () => {
    return `
    <div class="dropdown__wrap">
        Test
    </div>
  `
}
class Dropdown{
    constructor(selector) {
    this.$root = $(selector);
    this.$wrap = this.$root.find('.dropdown__wrap'); // тут еще нет его    
    console.log(this.$wrap.length);
    this.render(); // появляется после 
    this.$wrap = this.$root.find('.dropdown__wrap'); // тут есть
    console.log(this.$wrap.length);
  }
    render() {
        this.$root.html(template());
    }
  
    open() {
        this.$wrap.addClass('dropdown__wrap_expanded');
    }
    close() {
        this.$wrap.removeClass('dropdown__wrap_expanded');
    }
}
const dropdown = new Dropdown("#dropdown");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="dropdown"></div>

READ ALSO
Как развернуть React приложение?

Как развернуть React приложение?

Как развернуть собранное React-приложение на компоненты? Приложение имеет вот такой вид в собранном состоянии у меня на локальном сервере:

117
Настройка Webpack

Настройка Webpack

У меня возникло 2 ошибки в консоли

161
Сессия в Node.js быстро сбрасывается

Сессия в Node.js быстро сбрасывается

Сессия устанавливается после авторизацииЕсли попереключаться по ссылкам внутри сайта, все работает нормально

175
Диапазон дат в jquery datepicker

Диапазон дат в jquery datepicker

Использую в проекте jquery datepicker с параметрами

189