Rumah > Soal Jawab > teks badan
Membincangkan pengendalian nama kelas dalam js asli dalam kumpulan, seseorang mencadangkan kaedah setAttribute dan removeAttribute boleh digunakan untuk mengendalikan nama kelas saya berasa sangat hairan: Saya fikir hanya terdapat classList.add() atau classList.remove (). Terdapat beberapa cara untuk menyelesaikan keperluan ini, tetapi seseorang telah mencadangkan menggunakan setAttribute('class', 'xxx') dan removeAttribute('class'). Perasaan pertama ialah ia terhad dan tidak selamat: pertama, nama kelas hanya boleh ditukar kepada hasil yang ditentukan, dan kedua, kaedah memadam atribut kelas tidak pernah dilihat sebelum ini. Saya ingin bertanya sama ada pendekatan ini boleh dilaksanakan dalam pengendalian nama kelas? ?
我想大声告诉你2017-05-19 10:48:49
Malah, jika anda hanya mahu mengendalikan menambah dan memadam kelas, anda juga boleh memilih untuk menggunakan className untuk melakukannya, yang juga boleh mengelakkan masalah keserasian dengan classList.
Anda boleh memilih untuk merangkum sendiri dua kaedah penambahan dan pemadaman.
Kod pelaksanaan adalah seperti berikut
ele.className += ' clsName'; //添加类名
ele.className = ele.className.replace(/ ?deleteClsName/g,''); //删除类名
曾经蜡笔没有小新2017-05-19 10:48:49
Versi pelayar
removeAttribute
是用来删除指定属性的, class
也是属性,自然可以删除。classList
是 HTML5 的 API,如果只能用它来添加删除,你让不支持 classList
sangat memalukan. Di samping itu, anda akan tahu jika anda mencuba masalah seperti ini.
高洛峰2017-05-19 10:48:49
Kenapa tidak addClass....
setAttribute mengubah suai atribut keseluruhan kelas Jika anda ingin menggunakannya untuk menangani kelas, anda masih perlu membuat pertimbangan
.class="test1 test2 test3"; Dalam kes ini, jika anda ingin menetapkanAttribute, anda perlu terlebih dahulu menentukan sama ada nilai anda wujud Jika ia tidak wujud, ia tidak akan ditambah diproses. Untuk mengalih keluar, anda perlu menentukan sama ada ia wujud Jika ia tidak wujud, ia tidak akan diproses Jika ia wujud, anda tidak boleh memadamkan yang lain. . . .