const wrapper = document.createElement('DIV') // создаем обертку
wrapper.className = 'myClass' // с классом
const target = document.querySelector('.root-content') // ищем целевой див
target.insertAdjacentElement('afterend', wrapper) // вставляем обертку сразу после цели
wrapper.appendChild(target) // перемещаем целевой внутрь обертки
@media
это правило каскадной таблицы стилей. Javascript не работает не только внутри @media
, а вообще внутри любого места css.let timerId = setInterval(...)
clearInterval(timerId)
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
}
function foo(elem, eventType, selector, handler) {
elem.addEventListener(eventType, function(evt) {
if (evt.target.matches(selector)) {
handler(evt)
}
})
}
foo(document, 'click', '.element', handler)
e.target может находиться внутри требуемого элемента. К примеру, иконка внутри кнопки
evt.target.matches(selector)
заменить на evt.taget.closest(selector)
<?php
if ($_SESSION['user']['dont-remember']) { ?>
<script>
window.onunload = () => {
<?php unset($_SESSION['user']) ?> // этот кусок php выполнится на сервере,
// при генерации страницы, еще ДО того как html будет отправлен пользователю
}
</script> <?php
} ?>
window.onunload = () => {
}
Естественно, ничего полезного этот код не сделает.