Saya ingin mendapatkan nama kelas menggunakan jQuery
Dan jika memiliki id
<div class="myclass"></div>
javascript
jquery
X10nD
sumber
sumber
parents()
.this.className
bekerja tanpa jquery (akan kembali"myclass"
dalam contoh di atas)Jawaban:
Setelah mendapatkan elemen sebagai objek jQuery melalui cara lain selain kelasnya, maka
harus melakukan trik. Untuk penggunaan ID
.attr('id')
.Jika Anda berada di dalam event handler atau metode jQuery lainnya, di mana elemennya adalah simpul DOM murni tanpa pembungkus, Anda bisa menggunakan:
Keduanya merupakan metode DOM standar dan didukung dengan baik di semua browser.
sumber
if(className.indexOf(' ') !== -1){throw new Error('Uh-oh! More than one class name!');}
.attr('class')
dan menggabungkannya denganif(className.indexOf('Class_I_am_Looking_For') > = 0)
Anda dapat dengan mudah memeriksa keberadaan kelas tertentu dan masih menangani beberapa kelas.if(className.indexOf('Class_I_am_Looking_For') > = 0)
juga akan cocok"This_Is_Not_the_Class_I_am_Looking_For"
Lebih baik digunakan
.hasClass()
ketika Anda ingin memeriksa apakah suatu elemen memiliki tertentuclass
. Ini karena ketika suatu elemen memiliki banyak,class
itu tidak mudah untuk diperiksa.Contoh:
Dimana:
Dengan
.hasClass()
kita dapat menguji apakahdiv
memiliki kelasdivhover
.sumber
.is('.divhover')
Hati-hati, Mungkin, Anda memiliki kelas dan subkelas.
Jika Anda menggunakan solusi sebelumnya, Anda akan memiliki:
Jadi, jika Anda ingin memiliki pemilih kelas , lakukan hal berikut:
dan kamu akan punya
Sekarang jika Anda ingin memilih semua elemen yang memiliki kelas yang sama seperti div di atas:
itu berarti
Perbarui 2018
ATAU dapat diimplementasikan dengan vanilla javascript dalam 2 baris:
sumber
'.'+$('#id').attr('class').split(/[ \n\r\t\f]+/).join('.')
, karena ruang, Tab, LF, CR dan FF diizinkan untuk memisahkan kelas. (.split()
juga menerima RegExps.)'.'+$('#id').attr('class').split(/\s+/).join('.')
akan lebih ringkas, bukan? Atau apakah itu cocok dengan sesuatu yang tidak saya pikirkan?.attr('class').trim().split(...)
Ini untuk membuat kelas kedua menjadi beberapa kelas menggunakan elemen
sumber
Anda cukup menggunakan,
var className = $('#id').attr('class');
sumber
Jika Anda
<div>
memilikiid
:...Anda dapat mencoba:
Jika Anda
<div>
hanya memilikiclass
, Anda dapat mencoba:sumber
Jika Anda akan menggunakan fungsi pemisahan untuk mengekstrak nama kelas, maka Anda harus mengkompensasi variasi pemformatan potensial yang dapat menghasilkan hasil yang tidak terduga. Sebagai contoh:
menghasilkan
Saya pikir Anda lebih baik menggunakan ekspresi reguler untuk mencocokkan pada set karakter yang diizinkan untuk nama kelas. Sebagai contoh:
menghasilkan
Ekspresi reguler mungkin tidak lengkap, tapi mudah-mudahan Anda mengerti maksud saya. Pendekatan ini mengurangi kemungkinan pemformatan yang buruk.
sumber
Untuk menyelesaikan jawaban Whitestock (yang terbaik yang saya temukan) saya lakukan:
Jadi untuk "myclass1 myclass2" hasilnya adalah '.myclass1 .myclass2'
sumber
Anda bisa mendapatkan Nama kelas dengan dua cara:
ATAU
sumber
Dengan Javascript
Dengan jQuery
ATAU
sumber
Jika Anda tidak tahu nama kelas, TETAPI Anda tahu ID, Anda bisa mencoba ini:
Kemudian Sebut saja menggunakan:
sumber
Jika Anda ingin mendapatkan kelas div dan kemudian ingin memeriksa apakah ada kelas maka gunakan sederhana.
misalnya;
sumber
Cobalah
HTML
jQuery
sumber
jika kita memiliki satu atau kita ingin
div
elemen pertama yang bisa kita gunakan$('div')[0].className
kalau tidak kita membutuhkanid
elemen itusumber
Jika kami memiliki kode:
untuk mengambil nama kelas dengan menggunakan jQuery kita dapat mendefinisikan dan menggunakan metode plugin sederhana:
atau
Penggunaan metode ini adalah:
Kita harus memperhatikan bahwa ia akan mengembalikan daftar kelas yang tidak seperti elemen metode asli.className yang hanya mengembalikan kelas pertama dari kelas terlampir. Karena seringkali elemen memiliki lebih dari satu kelas yang melekat padanya, saya sarankan Anda untuk tidak menggunakan metode asli ini tetapi elemen.classlist atau metode yang dijelaskan di atas.
Varian pertama akan mengembalikan daftar kelas sebagai array, yang kedua sebagai nama kelas string yang dipisahkan oleh spasi:
Pemberitahuan penting lainnya adalah baik metode maupun metode jQuery
hanya mengembalikan daftar kelas elemen pertama yang ditangkap oleh objek jQuery jika kita menggunakan pemilih yang lebih umum yang menunjukkan banyak elemen lainnya. Dalam kasus seperti itu kita harus menandai elemen, kita ingin mendapatkan kelasnya, dengan menggunakan beberapa indeks, misalnya
Tergantung juga apa yang perlu Anda lakukan dengan kelas-kelas ini. Jika Anda hanya ingin memeriksa kelas ke daftar kelas elemen dengan id ini, Anda harus menggunakan metode "hasClass":
seperti yang disebutkan dalam komentar di atas. Tetapi jika Anda perlu mengambil semua kelas sebagai pemilih, maka gunakan kode ini:
Hasilnya adalah:
dan Anda bisa mendapatkannya untuk membuat secara dinamis aturan css penulisan ulang tertentu misalnya.
Salam
sumber
Ini juga berfungsi.
sumber
Cara terbaik untuk mendapatkan nama kelas di javascript atau jquery
attr()
fungsi atribut digunakan untuk mendapatkan dan mengatur atribut.sumber
gunakan seperti ini: -
jika Anda telah menggunakan kelas ini lebih dari sekali maka gunakan setiap operator
sumber