Bagaimana cara memilih item dengan nama menggunakan jQuery?

Saya memiliki kolom tabel yang saya coba rentangkan dan sembunyikan:

Tampaknya jQuery menyembunyikan elemen td 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 atribut name ?

 <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> 
967
10 июля '09 в 4:05 2009-07-10 04:05 TTT diatur pada 10 Juli 2009 pada 04:05 2009-07-10 04:05
@ 15 jawaban

Anda dapat menggunakan pemilih atribut :

 $('td[name=tcol1]') // matches exactly 'tcol1' $('td[name^=tcol]') // matches those that begin with 'tcol' $('td[name$=tcol]') // matches those that end with 'tcol' $('td[name*=tcol]') // matches those that contain 'tcol' 
1811
10 июля '09 в 4:21 2009-07-10 04:21 Jawaban diberikan oleh Jon Erickson pada 10 Juli '09 pada pukul 4:21 2009-07-10 04:21

Atribut apa pun dapat dipilih menggunakan [attribute_name=value] . Lihat Sampel di sini :

 var value = $("[name='nameofobject']"); 
168
22 сент. Jawabannya diberikan oleh user2804791 22 September 2013-09-22 22:07 '13 pada 10:07 malam 2013-09-22 22:07

Jika Anda memiliki sesuatu seperti:

 <input type="checkbox" name="mycheckbox" value="11" checked=""> <input type="checkbox" name="mycheckbox" value="12"> 

Anda dapat membaca semuanya seperti ini:

 jQuery("input[name='mycheckbox']").each(function() { console.log( this.value + ":" + this.checked ); }); 

Kutipan:

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="checkbox" name="mycheckbox" value="11" checked=""> <input type="checkbox" name="mycheckbox" value="12"> 
52
09 июля '14 в 21:34 2014-07-09 21:34 jawabannya diberikan oleh Andreas L. 09 Juli '14 di 21:34 2014-07-09 21:34

Anda bisa mendapatkan larik elemen dengan nama cara lama dan meneruskan larik ini ke jQuery.

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <html> <head> <title>sandBox</title> </head> <body> <input type="radio" name="chName"/><br /> <input type="radio" name="chName"/><br /> <input type="radio" name="chName"/><br /> <input type="radio" name="chName"/><br /> <input type="button" onclick="toggleByName();" value="toggle"/> </body> </html> 

Catatan: satu-satunya saat Anda memiliki alasan untuk menggunakan atribut "nama" harus diperiksa atau input radio.

Atau Anda bisa menambahkan kelas lain ke elemen untuk dipilih. (Inilah yang akan saya lakukan)

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <html> <head> <title>sandBox</title> </head> <body> <table> <tr> <td>data1</td> <td class="bold rowToToggle">data2</td> </tr> <tr> <td>data1</td> <td class="bold rowToToggle">data2</td> </tr> <tr> <td>data1</td> <td class="bold rowToToggle">data2</td> </tr> </table> <input type="button" onclick="toggleByClass(true);" value="show"/> <input type="button" onclick="toggleByClass(false);" value="hide"/> </body> </html> 
22
11 июля '09 в 8:25 2009-07-11 08:25 jawabannya diberikan oleh Teman Anda Ken. 11 Juli 2009 di 08:25 2009-07-11 08:25

Anda bisa mendapatkan nilai nama dari bidang input menggunakan elemen nama di jQuery:

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form name="form1" id="form1"> <input type="text" name="firstname" value="ABCD"/> <input type="text" name="lastname" value="XYZ"/> </form> 
18
15 июня '15 в 8:52 2015-06-15 08:52 jawabannya diberikan oleh Shrikant D pada 15 Juni '15 pukul 08:52 2015-06-15 08:52

Bingkai biasanya menggunakan tanda kurung dalam bentuk, misalnya:

 <input name=user[first_name] /> 

Anda dapat mengaksesnya:

 // in JS: this.querySelectorAll('[name="user[first_name]"]') // in jQuery: $('[name="user[first_name]"]') // or by mask with escaped quotes: this.querySelectorAll("[name*=\"[first_name]\"]") 
14
16 окт. Jawabannya diberikan oleh itsnikolay 16 Okt. 2015-10-16 19:27 '15 pada 19:27 2015-10-16 19:27

Saya berhasil dan berhasil:

 $('[name="tcol1"]') 

https://api.jquery.com/attribute-equals-selector/

12
25 марта '15 в 23:27 2015-03-25 23:27 jawabannya diberikan oleh kscius pada 25 Maret '15 di 23:27 2015-03-25 23:27

Ini adalah solusi sederhana: $('td[name=tcol1]')

5
27 апр. Balas diberikan oleh Tamu pada 27 Apr 2016-04-27 21:47 '16 jam 9:47 malam 2016-04-27 21:47

Secara pribadi, apa yang saya lakukan di masa lalu adalah memberi mereka pengidentifikasi kelas umum dan menggunakannya untuk memilih mereka. Ini mungkin tidak ideal, karena mereka memiliki kelas tertentu yang mungkin tidak ada, tetapi membuat pilihan lebih mudah. Pastikan Anda unik di kelas Anda.

yaitu untuk contoh di atas, saya akan menggunakan pilihan Anda berdasarkan kelas. Akan lebih baik untuk mengubah nama kelas dari huruf tebal menjadi "tcol1", jadi Anda tidak akan mendapatkan inklusi acak dalam hasil jQuery. Jika tipe tebal benar-benar milik kelas CSS, Anda selalu dapat menentukan seperti pada properti kelas, mis. "class =" tcol1 bold ".

Dengan demikian, jika Anda tidak dapat memilih berdasarkan nama, gunakan pemilih jQuery yang kompleks, atau terima hit kinerja yang terkait atau gunakan pemilih kelas.

Anda selalu dapat membatasi ruang lingkup jQuery dengan memasukkan nama tabel, yaitu $ ('# tableID> .bold').

Ini harus membatasi jQuery untuk mencari "perdamaian."

Itu masih dapat diklasifikasikan sebagai pemilih kompleks, tetapi dengan cepat menahan setiap pencarian di dalam tabel dengan pengenal "#IDIDID", sehingga meminimalkan.

Alternatif untuk ini, jika Anda mencari lebih dari satu item di # table1, itu akan melihatnya secara terpisah, dan kemudian meneruskannya ke jQuery, karena membatasi ruang lingkup, tetapi menjaga bit pemrosesan untuk melihatnya setiap waktu.

 var tbl = $('#tableID'); var boldElements = $('.bold',tbl); var rows = $('tr',tbl); if (rows.length) { var row1 = rows[0]; var firstRowCells = $('td',row1); } 
3
23 февр. Steve Childs memposting 23 Februari 2015-02-23 15:16 '15 pada 15:16 2015-02-23 15:16

Anda dapat menggunakan atribut apa pun sebagai pemilih dengan [attribute_name=value] .

 $('td[name=tcol1]').hide(); 
3
31 марта '16 в 15:51 2016-03-31 15:51 jawabannya diberikan oleh user6139189 31 Maret '16 di 15:51 2016-03-31 15:51

Anda bisa mendapatkan item di jQuery menggunakan atribut ID-nya, misalnya:

 $("#tcol1").hide(); 
2
10 июля '09 в 4:09 2009-07-10 04:09 jawabannya diberikan oleh CalebHC 10 Juli 2009 di 4:09 2009-07-10 04:09

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <html> <head> <title>sandBox</title> </head> <body> <input type="text" name="chName"/><br /> <input type="text" name="chName"/><br /> <input type="text" name="chName"/><br /> <input type="text" name="chName"/><br /> <input type="button" onclick="toggleByName();" value="toggle"/> </body> </html> 
2
12 авг. jawabannya diberikan sumith deepan 12 agustus . 2017-08-12 09:41 '17 pukul 9:41 pagi 2017-08-12 09:41

Anda telah melupakan kumpulan kutipan kedua, yang membuat jawaban yang diterima salah:

 $('td[name="tcol1"]') 
2
20 нояб. Jawaban diberikan oleh Chris J pada 20 November. 2017-11-20 22:27 '17 jam 10:27 malam 2017-11-20 22:27

Untuk menyembunyikan semua td dengan nama "tcol1"

 $('td[name=tcol1]').hide() 
0
07 июля '16 в 12:49 2016-07-07 12:49 jawabannya diberikan aditya mukkawar 07 Juli '16 di 12:49 2016-07-07 12:49
 <script src="jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ var a= $("td[name=tcol3]").html(); alert(a); }); </script> <table border="3"> <tr> <td>data1</td> <td name="tcol1" class="bold"> data2tcol1</td> </tr> <tr> <td>data1</td> <td name="tcol2" class="bold"> data2tcol2</td> </tr> <tr> <td>data1</td> <td name="tcol3" class="bold"> data2tcol3</td> </tr> </table> 

Ini adalah kode yang mungkin berguna.

-3
29 дек. Jawabannya diberikan oleh Anuragjainsagar 29 Des. 2014-12-29 23:48 '15 pukul 11:48 malam 2014-12-29 23:48

Pertanyaan lain tentang label atau Ajukan pertanyaan