Если честно, вопрос предшествует этому ответу.
Я добавляю это не для того, чтобы критиковать ОП, а чтобы помочь любому, кто все еще задает этот вопрос.
Правильный способ определить, является ли что-то видимым, - обратиться к модели представления;
Если вы не знаете, что это значит, то вы отправляетесь в путешествие открытий, которое значительно облегчит вашу работу.
Вот обзор архитектуры модель-вид-модель-модель (MVVM).
KnockoutJS - это библиотека привязок, которая позволит вам попробовать этот материал, не изучая всю инфраструктуру.
А вот некоторые JS и DIV, которые могут или не могут быть видны.
<html>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.1/knockout-min.js"></script>
<script>
var vm = {
IsDivVisible: ko.observable(true);
}
vm.toggle = function(data, event) {
//get current visibility state for the div
var x = IsDivVisible();
//set it to the opposite
IsDivVisible(!x);
}
ko.applyBinding(vm);
</script>
<div data-bind="visible: IsDivVisible">Peekaboo!</div>
<button data-bind="click: toggle">Toggle the div's visibility</button>
</body>
</html>
Обратите внимание, что функция переключения не обращается к DOM для определения видимости div, она обращается к модели представления.