Показать сообщение отдельно
  #1 (permalink)  
Старый 18.02.2018, 18:11
BNB BNB вне форума
Интересующийся
Отправить личное сообщение для BNB Посмотреть профиль Найти все сообщения от BNB
 
Регистрация: 09.02.2018
Сообщений: 27

Объект style.
Вообщем, в body сделал 2 тестовых div-a:

<div id="first">
        Первый элемент.
</div>
  
<div id="second">
	Второй элемент.
</div>


И написал такой js код:

var firstDiv = document.getElementById("first");
var secondDiv = document.getElementById("second");
	
firstDivStyle = firstDiv.style;
	
secondDiv.style = firstDivStyle;
	
secondDiv.style.backgroundColor = "gray";


То есть объект style первого div-а присваиваю второму div-у и меняю свойство backgroundColor через style второго div-a.

Думал, что оба элемента приобретут фон серого цвета, т.к. в js когда мы присваиваем уже созданный объект в какую-либо переменную, то эта переменная получает ссылку на него (копия объекта не создается) и в памяти остается только один объект style на двоих. По идее, получается, что если мы будем менять style в любом из этих двух div-ов, то эти свойства будут распространяться и работать на этих двух div-ах, но в браузере у меня почему-то серым становится только второй div. Вот понять не могу почему так.
Ответить с цитированием