Когда вы делаете console.log(d2.style.display);
непосредственно перед тем, если он ничего не покажет (пустая строка), по крайней мере, в моем Chrome.Вот почему это не = "none"
.Как следствие, if (d2.style.display == "none")
не оценивается как истинное.
Измените на
if (d2.style.display != "block")
, и оно будет работать!
Дальнейшие исследования:
console.log("typeof d2.style.display: "+typeof(d2.style.display));
console.log("length of d2.style.display: "+d2.style.display.length);
// OUTPUT:
// typeof d2.style.display: string
// length of d2.style.display: 0
Даже дальнейшие исследования:
в css display: none;
приведет к скрытому div, но значение не устанавливается в js.
Если я добавлю что-то вроде 'xyz' в display: xyz;
, оно будет показано, нозначение не установлено в js.Если я напишу display: 'none';
, то div не скрыт (конечно), но вычисляет if ...
Наконец: я не могу заставить console.log(d2.style.display);
показывать что-либо, если оно не в кавычках или не установлено через javascript.