Задать вопрос
@Antonio09

Как к тексту каждого пункта ( option) добавить значение его атрибута value?

  • Вопрос задан
  • 83 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Как получить value:

const getVal = option =>
  option.value;
  // или
  // option.getAttribute('value');
  // option.attributes.value.value;

Как добавить текст:

const addText = (option, text) =>
  option.text += text;
  // или
  // option.textContent = option.textContent.concat(text);
  // option.innerText = `${option.innerText}${text}`;
  // option.append(text);
  // option.insertAdjacentText('beforeend', text);
  // option.appendChild(document.createTextNode(text));
  // option.insertBefore(new Text(text), null);

Собираем вместе:

const addValToText = option => addText(option, getVal(option));

Поехали:

Array.prototype.forEach.call(select, addValToText);

// или

select.querySelectorAll('option').forEach(addValToText);

// или

for (const n of select) {
  addValToText(n);
}

// или

for (let i = 0; i < select.options.length; i++) {
  addValToText(select.options.item(i));
}

// или

(function add(i, n = select.children[i]) {
  if (n) {
    addValToText(n);
    add(i + 1);
  }
})(0);

// или

const add = n => n && (addValToText(n), add(n.nextElementSibling));
add(select.firstElementChild);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы