@superuberduper Saya menghindari jquery selama yang saya bisa tetapi perlawanan itu sia-sia. Anda akan merasa jauh lebih baik setelah Anda berasimilasi.
Apa arti sintaks $ ("selector", this)? Saya punya ide umum, tapi saya tidak sepenuhnya yakin
JoshWillik
14
@ JoshWillik dengan $("selector", this)Anda menemukan semua selectorelemen di dalam thiskonteks. Menulis $("selector", this)hampir sama dengan $(this).find('selector')
Bellash
8
@ Josh Willik: karena $()adalah alias dari jQuery(), Anda dapat menemukan dokumentasi di sini: api.jquery.com/jQuery Tanda tangan menyatakan ada jelas jQuery( selector [, context ] ). @ Bellash: jika "hampir sama", apa bedanya? Atau apa yang lebih cepat? Saya lebih suka .find()karena ini lebih OO IMO ...
Adrian Föder
7
Bagaimana cara memeriksa jika ada beberapa pilihan?
Hemant_Negi
3
@ AdrianFöder Bagi Anda dan orang lain yang mencarinya, .find()sekitar 10% lebih cepat sesuai dengan jawaban ini: stackoverflow.com/a/9046288/2767703
Solusi di atas berfungsi dengan baik tetapi saya memilih untuk menambahkan kode berikut untuk mereka yang mau mendapatkan opsi yang diklik. Ini memungkinkan Anda mendapatkan opsi yang dipilih bahkan ketika nilai pilih ini tidak berubah. (Diuji hanya dengan Mozilla)
OK keren! Seperti yang saya katakan, solusi kedua tidak didukung di banyak browser!
Bellash
15
Alternatif yang didelegasikan
Jika ada orang yang menggunakan pendekatan yang didelegasikan untuk pendengar mereka, gunakan e.target(itu akan merujuk pada elemen pilih).
$('#myform').on('change','select',function(e){var val = $(e.target).val();var text = $(e.target).find("option:selected").text();//only time the find is requiredvar name = $(e.target).attr('name');}
1 karena ini yang saya inginkan, tetapi ketika saya mencoba ini secara lokal, itu tidak berfungsi. Hanya bekerja di jsfiddle, apa yang harus saya tambahkan CDN?
AVI
6
Saya menemukan ini lebih pendek dan lebih bersih. Selain itu, Anda dapat beralih melalui item yang dipilih jika ada lebih dari satu;
Saya menyalin kode Anda ke IE 11 dan mendapat kesalahan. Saya berakhir dengan this.options[ this.options.selectedIndex ]. Mozilla mengatakan didukung oleh Firefox dari 26, IE Tidak ada dukungan.
Bernhard Döbler
6
<selectid="selectId"><optionvalue="A">A</option><optionvalue="B">B</option><optionvalue="C">C</option></select>
$('#selectId').on('change', function () {
var selectVal = $("#selectId option:selected").val();
});
Pertama buat a select option. Setelah itu menggunakan jqueryAnda bisa mendapatkan nilai yang dipilih saat ini ketika pengguna mengubah select optionnilai.
Jawaban:
sumber
$("selector", this)
Anda menemukan semuaselector
elemen di dalamthis
konteks. Menulis$("selector", this)
hampir sama dengan$(this).find('selector')
$()
adalah alias darijQuery()
, Anda dapat menemukan dokumentasi di sini: api.jquery.com/jQuery Tanda tangan menyatakan ada jelasjQuery( selector [, context ] )
. @ Bellash: jika "hampir sama", apa bedanya? Atau apa yang lebih cepat? Saya lebih suka.find()
karena ini lebih OO IMO ....find()
sekitar 10% lebih cepat sesuai dengan jawaban ini: stackoverflow.com/a/9046288/2767703Anda dapat menggunakan metode pencarian jQuery
Solusi di atas berfungsi dengan baik tetapi saya memilih untuk menambahkan kode berikut untuk mereka yang mau mendapatkan opsi yang diklik. Ini memungkinkan Anda mendapatkan opsi yang dipilih bahkan ketika nilai pilih ini tidak berubah. (Diuji hanya dengan Mozilla)
sumber
option
acara adalah proposisi yang berisiko, terutama pada perangkat seluler. Misalnya, Webkit tidak mendukung acara ini dengan benar: bugs.chromium.org/p/chromium/issues/detail?id=5284Alternatif yang didelegasikan
Jika ada orang yang menggunakan pendekatan yang didelegasikan untuk pendengar mereka, gunakan
e.target
(itu akan merujuk pada elemen pilih).Demo JSFiddle
sumber
Saya menemukan ini lebih pendek dan lebih bersih. Selain itu, Anda dapat beralih melalui item yang dipilih jika ada lebih dari satu;
sumber
selectedOptions
tidak tersedia di semua browser.this.options[ this.options.selectedIndex ]
. Mozilla mengatakan didukung oleh Firefox dari 26, IE Tidak ada dukungan.Pertama buat a
select option
. Setelah itu menggunakanjquery
Anda bisa mendapatkan nilai yang dipilih saat ini ketika pengguna mengubahselect option
nilai.sumber
sumber
Cara lain dan singkat untuk mendapatkan nilai dari nilai yang dipilih,
sumber
Lihat dokumentasi API resmi https://api.jquery.com/selected-selector/
Ini bekerja dengan baik:
dan
dan mudah untuk pilihan unik
sumber
Anda dapat menggunakan acara perubahan pemilihan jquery ini untuk mendapatkan nilai opsi yang dipilih
Untuk Demo
sumber