Bagaimana untuk Semak sama ada Elemen Mengandungi Kelas dalam JavaScript?
Masalah:
Mengesahkan jika elemen mempunyai kelas tertentu adalah keperluan biasa dalam JavaScript. Walau bagaimanapun, bergantung semata-mata pada perbandingan sifat className, seperti yang ditunjukkan dalam contoh yang disediakan, goyah apabila elemen tersebut memegang berbilang kelas.
Penyelesaian:
Untuk memastikan kehadiran secara berkesan kelas tertentu, tanpa mengira jumlah bilangan kelas yang diberikan kepada elemen, gunakan classList.contains kaedah.
element.classList.contains(className);
Kaedah ini berfungsi dengan sempurna merentas penyemak imbas moden dan polyfill tersedia untuk memenuhi pelayar lama.
Pendekatan Alternatif:
Untuk keserasian yang lebih luas, pertimbangkan untuk menggunakan indexOf dengan sedikit pengubahsuaian:
function hasClass(element, className) { return (' ' + element.className + ' ').indexOf(' ' + className+ ' ') > -1; }
Pelarasan ini memastikan padanan nama kelas separa tidak menghasilkan keputusan yang salah.
Demo:
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; } }
Dalam ini contoh, kod mengenal pasti dan memaparkan kelas yang terdapat dalam elemen dengan cekap, walaupun ia disertai oleh yang lain. kelas.
Atas ialah kandungan terperinci Bagaimana untuk Memeriksa dengan Amanah sama ada Elemen JavaScript Mengandungi Kelas Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!