Как присвоить текст элементу?

mixin filter-date-dropdown(params)
  .filter-date-dropdown
    .filter-date-dropdown__caption
      h3= params.leftCaption
    .filter-date-dropdown__input.input__style
      p.filter-date-dropdown__text Выберите даты
      span.filter-date-dropdown__expand-button.material-icons expand_more
    .dropdown-date__date-picker.dropdown-date__date-picker_hidden
      include ../filter-date-picker/filter-date-picker
      +filter-date-picker()

пробую

let isDateDropdownText = this.offsetParent.previousElementSibling.firstChild;
console.log(isDateDropdownText);
isDateDropdownText.text('text');

получаю ошибку

Uncaught TypeError: isDateDropdownText.text is not a function

console.log(isDateDropdownText); - выводит нужный элемент, но поля innerHTML, innerText и textContent у него пустые

возможно есть конфликт с кодом плагина air-datepicker

clear: function () {
  this.selectedDates = [];
  this.minRange = '';
  this.maxRange = '';
  this.views[this.currentView]._render();
  this._setInputValue();
  if (this.opts.onSelect) {
    this._triggerOnChange()
  }
},

заменил

.filter-date-dropdown__input.input__style
  p.filter-date-dropdown__text Выберите даты
  span.filter-date-dropdown__expand-button.material-icons expand_more

на

input.filter-date-dropdown__input.input__style.filter-date-dropdown__text(type='text' placeholder='Выберите даты' readonly)

работает, оставлю пока так, наверно, плагин работает только с инпутом


Ответы (1 шт):

Автор решения: Давид Манжула

Проблема в том что this и this.offsetParent.previousElementSibling.firstChild - это не jQuery-обьекты, а HTML-DOM-обьекты. У него нет метода .text().

Попробуйте так:

let isDateDropdownText = this.offsetParent.previousElementSibling.firstChild;
let $isDateDropdownText = $(isDateDropdownText);
console.log($isDateDropdownText);
$isDateDropdownText.text('text');

Кстати, название переменной с jQuery-обьектами принято начинать с знака доллара. Согласитесь, так понятнее что переменная содержит именно jQuery-обьект а не просто елемент или любое другое значение.

→ Ссылка