Задать вопрос
@coderxx
keep calm and learn js

Почему нельзя обращаться к css-свойству через переменную?

let x = document.getElementById('wrap').style.backgroundColor;
x = 'black';

Данная конструкция не срабатывает. Это особенность языка, или я что-то делаю не так?
  • Вопрос задан
  • 107 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 2
zendor
@zendor
В x у вас хранится не ссылка на элемент, а значение свойства backgroundColor.
const x = document.getElementById('wrap');
x.style.backgroundColor = 'black';
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
В JS примитивы (строки, числа) передаются по значению – копируются, грубо говоря.
А вот объекты всегда передаются по ссылке: меняете его свойство – оно меняется везде.
Подробнее.

В поле backgroundColor хранится строка. Она копируется, обратной связи нет.

Зато уже style – это объект, который передается по ссылке и можно манипулировать его свойствами:
let style = document.querySelector('h1.question__title').style;
style.backgroundColor = 'black';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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