Menentukan Kehadiran Kelas Unsur dalam JavaScript
Apabila memeriksa atribut kelas elemen, selalunya perlu untuk mengesahkan sama ada ia mengandungi kelas tertentu. Kod yang disediakan menggunakan pernyataan suis untuk memeriksa nilai kelas tepat elemen, tetapi pendekatan ini gagal mengesan padanan separa.
Untuk menyelesaikan pengehadan ini, pertimbangkan penggunaan kaedah element.classList .contains. Kaedah ini menerima nama kelas sebagai parameter dan mengembalikan boolean yang menunjukkan kehadirannya dalam senarai kelas elemen:
element.classList.contains(class);
Kaedah ini disokong secara universal merentas penyemak imbas moden dan menyediakan cara yang konsisten untuk menyemak kemasukan kelas.
Sebagai alternatif, untuk keserasian dengan penyemak imbas lama yang tidak mempunyai kaedah .contains, anda boleh menggunakan versi diubah suai berikut Kaedah indexOf:
function hasClass(element, className) { return (' ' + element.className + ' ').indexOf(' ' + className + ' ') > -1; }
Pengubahsuaian ini memastikan anda mengesan padanan separa dengan tepat, mengelakkan positif palsu apabila kelas yang anda cari adalah sebahagian daripada nama kelas yang lebih besar.
Menggunakan kaedah ini pada yang disediakan contoh:
var test = document.getElementById("test"), classes = ['class1', 'class2', 'class3', 'class4']; test.innerHTML = ""; for(var i = 0, j = classes.length; i < j; i++) { if(hasClass(test, classes[i])) { test.innerHTML = "I have " + classes[i]; break; } }
Dengan menggunakan kaedah .contains atau fungsi indexOf yang diubah suai, anda boleh dipercayai tentukan sama ada elemen mengandungi kelas tertentu dalam JavaScript, tanpa mengira keserasian penyemak imbas atau kehadiran padanan separa.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memeriksa Kehadiran Kelas Tertentu dalam JavaScript dengan Amanah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!