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

Как вставить элемент несколько раз во все элементы с заданным классом?

Добрый день.Скажите пожалуйста как мне это реализовать, вот моя попытка:

let counts = []

					for(i=1; i<75; i++) {

						counts.push(`<div class='count'>${i}</div>`)

						document.querySelectorAll('.g-counter .counts').forEach(ans => {

							ans.appendChild(counts[i])

						})

					}


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

const containers = document.querySelectorAll('.counts');
const tag = 'div';
const className = 'count';
const count = 3;

Добавляем:

const html = [...Array(count)]
  .map((_, i) => `<${tag} class="${className}">${i + 1}</${tag}>`)
  .join('');

for (const n of containers) {
  n.insertAdjacentHTML('beforeend', html);
}

или

for (let i = 0; i < containers.length; i++) {
  for (let j = 0; j < count;) {
    const el = document.createElement(tag);
    el.classList.add(className);
    el.innerText = ++j;
    containers[i].appendChild(el);
  }
}

или

const fragment = document.createDocumentFragment();
fragment.append(...Array.from({ length: count }, (_, i) => (
  Object.assign(document.createElement(tag), {
    textContent: -~i,
    className,
  })
)));

containers.forEach(n => n.append(fragment.cloneNode(true)));
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Вставить нужно на странице? И если да, то вставить как, в начало найденных элементов или конец?
Ответ написан
Ваш ответ на вопрос

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

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