[
{ value: 'rating-desc', text: 'По рейтингу', selected: false },
{ value: 'rating-asc', text: 'По рейтингу', selected: false },
{ value: 'alphabet-asc', text: 'По алфавиту А-Я', selected: true },
{ value: 'alphabet-desc', text: 'По рейтингу Я-А', selected: false },
{ value: 'letter-asc', text: 'По количеству букв', selected: false },
{ value: 'letter-desc', text: 'По количеству букв', selected: false },
]
let select = `<select>
<option value="${item.value}">${item.text}</option> // здесь маппинг по values
</select>`;
$(this).after(select); // кидаю в DOM
this.insertAdjacentHTML('afterend', `
<select>${arr.map(n => `
<option value="${n.value}" ${n.selected ? 'selected' : ''}>
${n.text}
</option>`).join('')}
</select>
`);
const select = document.createElement('select');
arr.forEach(n => select.appendChild(Object.assign(document.createElement('option'), n)));
this.insertAdjacentElement('afterend', select);
const select = document.createElement('select');
select.append(...arr.map(n => new Option(n.text, n.value, false, n.selected)));
this.after(select);
const select = document.createElement('select');
for (const n of arr) {
const option = document.createElement('option');
option.textContent = n.text;
option.setAttribute('value', n.value);
if (n.selected) {
option.attributes.setNamedItem(document.createAttribute('selected'));
}
select.insertBefore(option, null);
}
this.parentNode.insertBefore(select, this.nextElementSibling);