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

Как эффективно заменить текущий HTML элемент на другой?

Есть в коде элемент, который я могу найти по классу или айди.
Как я могу заменить именно этот элемент на другой, чтобы в родительском элементе он не поменял своего местоположения и заменился на месте старого?
Попытался сделать через replaceWith, но видимо не так понял его суть.
Элемент, который будет вставляться - строка, описывающая хтмл код.

<div class="main">
  <div class="box">
    <p1>hello</p1>
  </div>
</div>


const box = document.querySelector('.box')

const box2 = `
<div class="box box2">
    <p1>hello world</p1>
  </div>
`

box.replaceWith(box2)
  • Вопрос задан
  • 197 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
alsolovyev
@alsolovyev
¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
https://jsfiddle.net/Lfst8wog/1/
const childElement = document.getElementById('child'); // находим потомка
const parentElement = childElement.parentNode; // находим родителя

// Создаем новый элемент
const newElement = document.createElement('p');
newElement.textContent = 'Новый элемент';

// Заменяем старый элемент на новый
parentElement.replaceChild(newElement, childElement);


Или так (https://jsfiddle.net/Lfst8wog/)
const oldElement = document.getElementById('old');

// Создаем новый элемент
const newElement = document.createElement('div');
newElement.textContent = 'Новый элемент';

// Заменяем старый элемент новым
oldElement.replaceWith(newElement);


const oldElement = document.getElementById('old');

oldElement.replaceWith(document.createRange().createContextualFragment(`
  <div class="box box2">
    <p1>hello world</p1>
  </div>
`));
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
элемент.insertAdjacentHTML('afterend', разметка);
элемент.remove();

// или

элемент.outerHTML = разметка;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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