Как присвоить текст элементу?
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-обьект а не просто елемент или любое другое значение.