Punya kolom tabel yang saya coba rentangkan dan sembunyikan:
jQuery tampaknya menyembunyikan td
elemen ketika saya memilihnya berdasarkan kelas tetapi tidak dengan nama elemen .
Misalnya, mengapa:
$(".bold").hide(); // selecting by class works
$("tcol1").hide(); // select by element name does not work
Perhatikan HTML di bawah ini, kolom kedua memiliki nama yang sama untuk semua baris. Bagaimana saya bisa membuat koleksi ini menggunakan name
atribut?
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
Jawaban:
Anda dapat menggunakan pemilih atribut jQuery :
sumber
$("td:not([name='tcol1'])")
misalnya. Anda dapat melihatnya di biola iniAtribut apa pun dapat dipilih menggunakan
[attribute_name=value]
cara. Lihat sampel di sini :sumber
var value = $("[name=nameofobject]");
<input name="itemid[]">
. Jadi jawaban ini bekerja lebih sempurna daripada jawaban yang diterima, berkat penggunaan kutipan yang tepat.Jika Anda memiliki sesuatu seperti:
Anda dapat membaca semua seperti ini:
Cuplikan:
sumber
Anda bisa mendapatkan array elemen dengan nama cara kuno dan meneruskan array itu ke jQuery.
Catatan: satu-satunya saat Anda memiliki alasan untuk menggunakan atribut "nama" adalah untuk kotak centang atau input radio.
Atau Anda bisa menambahkan kelas lain ke elemen untuk seleksi. (Inilah yang akan saya lakukan)
sumber
Anda bisa mendapatkan nilai nama dari bidang input menggunakan elemen nama di jQuery dengan:
sumber
Kerangka kerja biasanya menggunakan nama braket dalam bentuk, seperti:
Mereka dapat diakses dengan:
sumber
Saya sudah melakukan ini dan berhasil:
https://api.jquery.com/attribute-equals-selector/
sumber
Anda lupa kumpulan tanda kutip kedua, yang membuat jawaban yang diterima salah:
sumber
'td[name="nested[fieldName]"]'
Inilah solusi sederhana:
$('td[name=tcol1]')
sumber
Anda bisa mendapatkan elemen di JQuery dengan menggunakan atribut ID-nya seperti ini:
sumber
Anda dapat menggunakan atribut apa pun sebagai pemilih dengan
[attribute_name=value]
.sumber
Secara pribadi, apa yang telah saya lakukan di masa lalu adalah memberi mereka id kelas umum dan menggunakannya untuk memilih mereka. Ini mungkin tidak ideal karena mereka memiliki kelas yang ditentukan yang mungkin tidak ada, tetapi itu membuat seleksi jauh lebih mudah. Pastikan Anda unik di nama kelas Anda.
yaitu untuk contoh di atas saya akan menggunakan pilihan Anda berdasarkan kelas. Lebih baik lagi mengubah nama kelas dari huruf tebal menjadi 'tcol1', jadi Anda tidak mendapatkan inklusi tidak disengaja ke dalam hasil jQuery. Jika huruf tebal sebenarnya merujuk ke kelas CSS, Anda selalu dapat menentukan keduanya di properti kelas - yaitu 'class = "tcol1 bold"'.
Singkatnya, jika Anda tidak dapat memilih berdasarkan Nama, gunakan pemilih jQuery yang rumit dan terima hit kinerja terkait atau gunakan penyeleksi Kelas.
Anda selalu dapat membatasi ruang lingkup jQuery dengan memasukkan nama tabel yaitu $ ('# tableID> .bold')
Itu seharusnya membatasi jQuery dari pencarian "dunia".
Itu masih bisa digolongkan sebagai pemilih yang rumit, tetapi dengan cepat membatasi pencarian apa pun di dalam tabel dengan ID '#tableID', jadi jaga pemrosesan menjadi minimum.
Alternatif dari ini jika Anda mencari lebih dari 1 elemen dalam # table1 akan mencari ini secara terpisah dan kemudian meneruskannya ke jQuery karena ini membatasi ruang lingkup, tetapi menyimpan sedikit pemrosesan untuk mencarinya setiap kali.
sumber
Anda dapat menggunakan fungsi ini:
sumber
get.elementbyId()
? Apakah maksud Andadocument.getElementById()
?