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

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

Есть элементы:

<button class="btn"><span>кнопка</span></button>
<button class="btn"><span>кнопка 2</span></button>
<button class="btn"><span>кнопка 3</span></button>

Надо продублировать их внутреннее содержимое, чтобы стало так:

<button class="btn"><span>кнопка</span><span>кнопка </span></button>
<button class="btn"><span>кнопка 2</span><span>кнопка 2</span></button>
<button class="btn"><span>кнопка 3</span><span>кнопка 3</span></button>


let btns = Array.from(document.querySelectorAll('.btn'));
btns.forEach(function(item, index) {
  // как это сделать?
})
  • Вопрос задан
  • 68 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const duplicateContent = el =>

  // можно добавить копии вложенных узлов
  el.append(...el.cloneNode(true).childNodes);

  // или добавить копию разметки
  // el.insertAdjacentHTML('beforeEnd', el.innerHTML);

  // или перезаписать разметку в удвоенном виде
  // el.innerHTML += el.innerHTML;
  // el.innerHTML = el.innerHTML.repeat(2);
  // el.innerHTML = Array(3).join(el.innerHTML);
  // el.innerHTML = String.prototype.concat.apply('', Array(2).fill(el.innerHTML));
  // el.innerHTML = el.innerHTML.replace(/.+/, '$&$&');
  // el.innerHTML = /(.+)/.exec(el.innerHTML).join``;

document.querySelectorAll('.btn').forEach(duplicateContent);

// или

for (const n of document.getElementsByClassName('btn')) {
  duplicateContent(n);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Element.cloneNode(true) копирует элемент и всё внутри:
Ответ написан
Ваш ответ на вопрос

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

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