Jika kami hanya mengumpulkan cara dasar mendeteksi visibilitas, jangan lupa:
opacity > 0.01; // probably more like .1 to actually be visible, but YMMV
Dan bagaimana cara mendapatkan atribut:
element.getAttribute(attributename);
Jadi, dalam contoh Anda:
document.getElementById('snDealsPanel').getAttribute('visibility');
Tapi apa? Ini tidak berfungsi di sini. Lihatlah lebih dekat dan Anda akan menemukan bahwa visibilitas sedang diperbarui bukan sebagai atribut pada elemen, tetapi menggunakan style
properti. Ini adalah salah satu dari banyak masalah dengan mencoba melakukan apa yang Anda lakukan. Antara lain: Anda tidak dapat menjamin bahwa sebenarnya ada sesuatu untuk dilihat dalam suatu elemen, hanya karena visibilitas, tampilan, dan opacity semuanya memiliki nilai yang benar. Mungkin masih kekurangan konten, atau mungkin memiliki tinggi dan lebar. Objek lain mungkin mengaburkannya. Untuk lebih detail, pencarian Google cepat mengungkapkan ini , dan bahkan menyertakan perpustakaan untuk mencoba memecahkan masalah. (YMMV)
Lihatlah yang berikut, yang merupakan duplikat yang mungkin dari pertanyaan ini, dengan jawaban yang sangat baik, termasuk beberapa wawasan dari John Resig yang perkasa. Namun, case-use khusus Anda sedikit berbeda dari yang standar, jadi saya akan menahan diri untuk tidak memberi tanda:
(EDIT: OP MENGATAKAN HAL-HAL YANG MENGHANCURKAN, TIDAK MENCIPTAKAN MEREKA, BEGITU DI BAWAH INI TIDAK BERLAKU) Pilihan yang lebih baik? Ikat visibilitas elemen untuk memodelkan properti dan selalu membuat visibilitas bergantung pada model itu, seperti halnya Angular dengan ng-show. Anda dapat melakukannya dengan menggunakan alat apa pun yang Anda inginkan: Angular, JS polos, apa pun. Lebih baik lagi, Anda dapat mengubah implementasi DOM dari waktu ke waktu, tetapi Anda akan selalu dapat membaca status dari model, alih-alih DOM. Membaca kebenaran Anda dari DOM itu Buruk. Dan lambat. Jauh lebih baik untuk memeriksa model, dan percaya pada implementasi Anda untuk memastikan bahwa keadaan DOM mencerminkan model. (Dan gunakan pengujian otomatis untuk mengonfirmasi asumsi itu.)
document.getElementById('snDealsPanel').style.visibility