Apakah mungkin untuk memeriksa apakah suatu elemen CSS display == block
atau none
menggunakan JavaScript?
javascript
css
Seth
sumber
sumber
currentStyle
? tidak pernah mendengarnya, juga memeriksadocument.body.currentStyle
dan tidak mendapat apa-apa (tidak terkejut)Jika gaya dideklarasikan sebaris atau dengan JavaScript, Anda bisa langsung melihat
style
objeknya:return element.style.display === 'block';
Jika tidak, Anda harus mendapatkan gaya yang dihitung, dan ada inkonsistensi browser. IE menggunakan
currentStyle
objek sederhana , tetapi semua orang menggunakan metode:return element.currentStyle ? element.currentStyle.display : getComputedStyle(element, null).display;
The
null
diperlukan di Firefox versi 3 dan di bawah.sumber
===
dan!==
Operator".===
daripada di==
sini, tapi juga tidak ada keuntungannya. Kedua operan dijamin sebagai string, jadi kedua operator melakukan langkah yang persis sama.Untuk jQuery, maksud Anda seperti ini?
$('#object').css('display');
Anda dapat memeriksanya seperti ini:
if($('#object').css('display') === 'block') { //do something } else { //something else }
sumber
Jawaban ini tidak persis seperti yang Anda inginkan, tetapi mungkin berguna dalam beberapa kasus. Jika Anda mengetahui bahwa elemen memiliki beberapa dimensi saat ditampilkan, Anda juga dapat menggunakan ini:
var hasDisplayNone = (element.offsetHeight === 0 && element.offsetWidth === 0);
EDIT: Mengapa ini mungkin lebih baik daripada pemeriksaan langsung
display
properti CSS ? Karena Anda tidak perlu mencentang semua elemen induk. Jika beberapa elemen induk memilikidisplay: none
, turunannya juga disembunyikan tetapi masih memilikielement.style.display !== 'none'
.sumber
Iya.
var displayValue = document.getElementById('yourid').style.display;
sumber
JavaScript Dasar:
if (document.getElementById("elementId").style.display == 'block') { alert('this Element is block'); }
sumber
Untuk mengetahui apakah itu terlihat dengan JavaScript biasa, periksa apakah properti tampilan adalah 'tidak ada' (jangan centang 'blok', bisa juga kosong atau 'sebaris' dan masih terlihat):
var isVisible = (elt.style.display != "none");
Jika Anda menggunakan jQuery, Anda dapat menggunakan ini sebagai gantinya:
var isVisible = $elt.is(":visible");
sumber
Dengan javascript murni Anda dapat memeriksa
style.display
properti. Dengan jQuery Anda bisa menggunakan$('#id').css('display')
sumber
Anda dapat memeriksanya dengan misalnya jQuery:
$("#elementID").css('display');
Ini akan mengembalikan string dengan informasi tentang properti tampilan elemen ini.
sumber