Periksa, gunakan jQuery, jika elemennya adalah 'display: none' atau blokir saat klik


240

Saya ingin memeriksa dan mengurutkan elemen yang disembunyikan. Apakah mungkin menemukan semua elemen dengan atribut displaydan nilai none?

Jawaban:


543

Anda dapat menggunakan : terlihat untuk elemen yang terlihat dan : disembunyikan untuk menemukan elemen yang tersembunyi. Elemen tersembunyi ini memiliki displayatribut yang disetel ke none.

hiddenElements = $(':hidden');
visibleElements = $(':visible');

Untuk memeriksa elemen tertentu.

if($('#yourID:visible').length == 0)
{

}

Elemen dianggap terlihat jika mereka menggunakan ruang dalam dokumen. Elemen yang terlihat memiliki lebar atau tinggi yang lebih besar dari nol, Referensi

Anda juga dapat menggunakan is () dengan:visible

if(!$('#yourID').is(':visible'))
{

}

Jika Anda ingin memeriksa nilai tampilan maka Anda dapat menggunakan css ()

if($('#yourID').css('display') == 'none')
{

}

Jika Anda menggunakan tampilan, nilai-nilai berikut displaydapat dimiliki.

display: tidak ada

display: inline

tampilan: blok

display: daftar-item

display: inline-block

Periksa daftar lengkap displaynilai yang mungkin di sini .

Untuk memeriksa properti tampilan dengan JavaScript

var isVisible = document.getElementById("yourID").style.display == "block";
var isHidden = document.getElementById("yourID").style.display == "none"; 

baik, dalam skenario saya, masing-masing elemen memiliki ID, jadi triknya bekerja untuk saya :)
Nicholas Francis

2
@NicholasFrancis, saya telah memperbarui jawaban saya untuk mengetahui semua elemen yang disembunyikan.
Adil

Apakah itu memeriksa inline css juga. Saya telah display: block;menulis inline css yang berasal dari jquery. saya tidak dapat memeriksanya dengan metode Anda. tolong aku.
Gaurav Manral

Apakah jQuery ditambahkan dan Anda mengakses elemen setelah ditambahkan ke DOM? Bisakah kamu tunjukkan kodenya? Akan lebih baik untuk membuat demo di jsfiddle.net
Adil

Apa itu JavaScript equiv?
TheBlackBenzKid

56
$("element").filter(function() { return $(this).css("display") == "none" });

7
+1: Ini sebenarnya lebih berguna daripada jawaban yang diterima untuk pertanyaan yang diajukan , karena ini akan berfungsi bahkan jika elemen induk memiliki style="display: none;". Jawaban menggunakan :visibledan :hiddenakan gagal jika Anda ingin visibilitas elemen tertentu dan elemen induk disembunyikan karena penyeleksi tersebut mengembalikan visibilitas keseluruhan pada halaman (yang bukan pertanyaan yang diajukan).
Hilang Coding

Ini berfungsi saat menjalankan tes bersatu di lingkungan JS DOM.
B01

Untuk plugin tabbing, pengaturannya visibility: 'hidden';dalam css, jadi cek akhirnya juga memeriksa:$(this).css('visibility') != 'hidden'
phyatt

30

Ya, Anda bisa menggunakan fungsi css. Di bawah ini akan mencari semua div, tetapi Anda dapat memodifikasinya untuk elemen apa pun yang Anda butuhkan

$('div').each(function(){

    if ( $(this).css('display') == 'none')
    {
       //do something
    }
});

13

Gunakan kondisi ini:

if (jQuery(".profile-page-cont").css('display') == 'block'){
    // Condition 
}

11

Ada dua metode dalam jQuery untuk memeriksa visibilitas:

$("#selector").is(":visible")

dan

$("#selector").is(":hidden")

Anda juga dapat menjalankan perintah berdasarkan visibilitas di pemilih;

$("#selector:visible").hide()

atau

$("#selector:hidden").show()

6
Catatan: ini tidak akan mengembalikan atribut terlihat spesifik dari elemen yang dipilih, seperti pertanyaan, seperti :visiblejuga tergantung pada visibilitas leluhur orang tua. Jika nenek moyang adalah display: nonesemua keturunan tidak akan terlihat terlepas dari displaynegara.
Hilang Coding

10
$('#selector').is(':visible');

3
Catatan: ini tidak akan mengembalikan atribut terlihat spesifik dari elemen yang dipilih, seperti pertanyaan, seperti :visiblejuga tergantung pada visibilitas leluhur orang tua. Jika nenek moyang adalah display: nonesemua keturunan tidak akan terlihat terlepas dari displaynegara.
Hilang Coding
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.