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

Как сделать что бы свойства класса прописывались не дом узлу а классу создаваемому в js?

Здравствуйте. Когда я выбирают с помощью document.querySelector
и задаю свойства этой переменной и с помощью тогл убираю и добавляю этот класс ,то свойство которое я прописываю применяется к дом узлу а не к классу . Как сделать что бы свойство применялось к актив классу ,что бы когда его уберешь
то и свойство пропадало при условии что ширину flex я прописываю в js ?
const order = document.querySelectorAll('.item-order');
order.classList.toggle('order-active');
const order_active = document.querySelector('.order-active');
 order_active.style.setProperty('flex', '0 1' + choisenitemwidth + 'px'');

<div class=item-order>
  • Вопрос задан
  • 50 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 2
delphinpro
@delphinpro Куратор тега CSS
frontend developer
Я нифига не понял, кроме одного.
Чтобы убрать стиль, назначенный из скрипта, нужно присвоить ему пустую строку.

// добавляем стиль
order_active.style.flex = '0 1' + choisenitemwidth + 'px';

// обнуляем
order_active.style.flex = '';


При этом стиль не сбросится полностью – он станет таким, каким прописан в css
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
1. querySelectorAll возвращает не элемент, а коллекцию элементов. У коллекции нет свойства classList. Чтобы изменить класс у всех элементов коллекции, её надо перебирать циклом.
const orders = document.querySelectorAll('.item-order');
orders.forEach((el) => el.classList.toggle('order-active'));


2. Привязка стиля к классу делается в CSS. У DOM-элементов после этого достаточно задать нужный класс. Менять стили у элементов напрямую без особой необходимости не стоит.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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