Menyemak sama ada Elemen Mengandungi Kelas dalam JavaScript
Dalam JavaScript, anda mungkin menghadapi senario di mana anda perlu menentukan sama ada elemen DOM mengandungi kelas tertentu. Walaupun pendekatan semasa anda menggunakan element.className dan pernyataan suis boleh berfungsi, ia mempunyai had apabila elemen mempunyai berbilang kelas.
Menggunakan element.classList.contains()
Untuk keserasian silang penyemak imbas yang lebih baik, anda boleh menggunakan element.classList.contains() kaedah:
element.classList.contains(className);
Kaedah ini mengembalikan boolean yang menunjukkan sama ada elemen itu mempunyai kelas yang ditentukan. Ia disokong dalam semua penyemak imbas utama.
Pendekatan Alternatif dengan indexOf
Jika anda berurusan dengan pelayar lama yang tidak menyokong element.classList, anda boleh mengubah suai pendekatan indexOf anda yang sedia ada seperti berikut:
function hasClass(element, className) { return (' ' + element.className + ' ').indexOf(' ' + className+ ' ') > -1; }
Ini memastikan bahawa semakan hanya mengembalikan benar jika kelas yang anda cari tidak terkandung dalam nama kelas lain.
Contoh Pelaksanaan
Menggunakan teknik yang dikemas kini pada contoh anda:
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; } }
Pendekatan ini mengendalikan kes di mana elemen ujian mempunyai berbilang kelas, memastikan kelas yang betul dikesan walaupun tertib atau kelas tambahannya hadir.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak dengan Cekap sama ada Elemen DOM JavaScript Mengandungi Kelas Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!