Как удалить html с помощью jquery не удаляя содержимое?
Есть, например, такой html:
<div class="asd">
<p>asd</p>
</div>
Как удалить div с классом asd, при этом не удалив тег p, то есть его содержимое? И все это надо сделать на определённом разрешении экрана. Это возможно сделать на jquery?
Но чтобы потом этот родитель возвращался. Например если разрешение больше 700px то удалялся родитель, а если 600px то оставался. И все это чтобы менялось
function getWindowWidth() {
return window.innerWidth || document.body.clientWidth;
}
if (getWindowWidth() >= 400) {
const element = document.querySelector('.asd');
element.outerHTML = element.innerHTML;
}
Но он срабатывает только один раз при загрузке страницы, если я зайду в панель разработчика в google chrome и буду изменять разрешение уже загруженной страницы, то этот скрипт не будет изменять. Он будет работать единожды за одно обновление страницы.
Я хочу так:
Чтобы этот скрипт выполнялся в реальном времени, то есть когда я изменял разрешение браузера этот скрипт удалял родителя и возвращал
window.addEventListener('resize', function(){ - это прослушиватель события resize (проверяет произошло ли изменение размеров окна браузера)
если ширина экрана меньше чего-то, то ... $('.asd').find('p').addClass('wrap-this').unwrap(); - назначить обёрнутому <p> класс wrap-this и убрать обёртку
если ширина экрана больше чего-то, то ... $('.wrap-this').wrap('<div class="asd"></div>'); - обернуть .wrap-this в .asd
})
А вообще это с помощью CSS @media запросов для разных размеров экрана можно поменять - сделав набор стилей для вашего класса .asd с нужными параметрами размеров/отступов и ещё чего-то, что вам мешает на разных размерах экрана