Kita tahu bahwa JS asli memberi kita metode GetElementsByClassName, yang dapat memperoleh kumpulan node yang berisi kelas yang ditentukan melalui metode ini. Perhatikan bahwa ini adalah koleksi, yaitu fungsi ini mengembalikan array.
Namun, IE tidak mendukung metode ini, tetapi metode ini sangat praktis, jadi kami harus menerapkan fungsi seperti itu secara khusus untuk IE.
Salinan kode adalah sebagai berikut:
function getElementsbycasname (oele, sclass, sele) {
if (oele.geteLementsByClassName) {
return oele.getElementsbyclassname (sclass);
}kalau tidak{
var aele = oele.getElementsbyTagname (sele || '*'),
reg = regexp baru ('(^| // s)'+sclass+'($ | // s)'),
arr = [],
i = 0,
ilen = aele.length;
untuk (; i <ilen; i ++) {
if (reg.test (aele [i] .className)) {
arr.push (aele [i]);
}
}
return arr;
}
}
Bagaimana menggunakan:
Salinan kode adalah sebagai berikut:
// Tipe pertama: Pilih semua kelas di bawah dokumen sebagai elemen div dari Box_Box
GetElementsByClassName (dokumen, 'box_box', 'div') [0] .style.background = 'yellow';
// Jenis kedua: Pilih semua kelas di bawah dokumen sebagai elemen div kotak kotak
GetElementsByClassName (dokumen, 'kotak kotak', 'Div') [0] .Style.Background = 'Yellow';
// Jenis ketiga: Pilih semua kelas di bawah dokumen sebagai elemen kotak kotak
GetElementsByClassName (dokumen, 'kotak kotak') [0] .style.background = 'yellow';
Diperlukan Oele dan SCLASS, Sele adalah opsional.
Tidak ada masalah dengan garis horizontal atau garis bawah di SCLASS, seperti kotak kotak_box; Tetapi jika itu adalah karakter khusus lainnya, sangat mungkin ada masalah, seperti kotak $ kotak ... tentu saja, Anda dapat menambahkan pelarian untuk mendapatkan karakter khusus sendiri, seperti kotak // $ box ...
Kompatibilitas: Tes IE6+
Teman, Anda akan mengetahuinya setelah menggunakannya sendiri. Sangat mudah digunakan. Mari kita sebarkan ke teman -teman lain.