Saya perlu memeriksa apakah a <select>
memiliki opsi yang teksnya sama dengan nilai tertentu.
Misalnya, jika ada <option value="123">abc</option>
, saya akan mencari "abc".
Apakah ada pemilih untuk melakukan ini?
Saya mencari sesuatu yang mirip $('#select option[value="123"]');
tetapi untuk teks.
has
jawaban dalam bahasa Slaks berguna, tetapi poin dalam jawaban Floyds juga bagus ... Saya tidak tahu harus menerima apa.Jawaban:
Ini bisa membantu:
Demo biola
Ini akan memberi Anda opsi dengan teks
B
dan bukan yang memiliki teks yang berisiB
. Semoga ini membantuUntuk versi terbaru dari jQuery di atas tidak berfungsi. Seperti yang dikomentari oleh Quandary di bawah ini, inilah yang berfungsi untuk jQuery 1.9.1:
Biola diperbarui
sumber
Anda dapat menggunakan
:contains()
pemilih untuk memilih elemen yang berisi teks tertentu.Sebagai contoh:
Untuk memeriksa apakah
<select>
elemen yang diberikan memiliki opsi seperti itu, gunakan.has()
metode ini :Untuk menemukan semua
<select>
yang mengandung opsi seperti itu, gunakan:has()
pemilih :sumber
:contains
bukan definitif sekarang, kan?123abcdef
?Tidak ada saran sebelumnya yang bekerja untuk saya di jQuery 1.7.2 karena saya mencoba untuk mengatur indeks daftar yang dipilih berdasarkan nilai dari kotak teks, dan beberapa nilai teks terkandung dalam beberapa opsi. Saya akhirnya menggunakan yang berikut ini:
sumber
contains
sama sekali mungkin sebenarnya mempercepat.$(this).parent().val($(this).val());
Anda mungkin bisa melakukan keduanya, tetapi bagi saya pengaturan hanya orangtua yangval()
melakukan trik.Saya menghadapi masalah yang sama di bawah ini adalah kode kerjanya:
Demo: http://jsfiddle.net/YRBrp/83/
sumber
Ini bekerja untuk saya:
$("#test").find("option:contains('abc')");
sumber
$("#testselect").find("option:contains('option-text')").attr('value');
dengan cara itu Anda bisa menggunakan acara seperti.click()
ingin mengubah pengaturan.Ini adalah metode terbaik untuk memilih teks di dropdownlist.
sumber
this is your selected text plus more
.Saya mencoba beberapa dari hal-hal ini sampai saya dapat menggunakannya di Firefox dan IE. Inilah yang saya pikirkan.
cara lain untuk menulisnya dalam fasion yang lebih mudah dibaca:
Kodesemu:
sumber
"#my-Select" + " option"
? Kenapa tidak adil"#my-Select option"
?Gunakan mengikuti
sumber
Ini akan bekerja di jQuery 1.6 (perhatikan titik dua sebelum braket pembuka), tetapi gagal pada rilis yang lebih baru (1,10 pada saat itu).
sumber
$("#mySelect option").filter(function() { return this.text == "abc"; });
akan bekerja dengan versi terbaru dari jQuery .. Atau mungkin cara lain yang Anda sukai untuk digunakan ..Untuk versi jquery 1.10.2 di bawah ini berfungsi untuk saya
sumber
Ini bekerja untuk saya
sumber
Ini bekerja untuk saya:
The
result
variabel akan mengembalikan indeks dari nilai teks yang cocok. Sekarang saya hanya akan mengaturnya menggunakan indeks itu:sumber
Entah Anda beralih melalui opsi, atau menempatkan teks yang sama di dalam atribut opsi lain dan pilih dengan itu.
sumber
Ini juga akan berfungsi.
$ ('# test'). find ("opsi pilih: berisi ('B')"). filter (": terpilih");
sumber
ABC
.Seperti dijelaskan dalam jawaban ini , Anda dapat dengan mudah membuat pemilih sendiri untuk hasText. Ini memungkinkan Anda menemukan opsi dengan
$('#test').find('option:hastText("B")').val();
Inilah metode hasText yang saya tambahkan:
sumber
Ini bekerja untuk saya
Terima kasih untuk semua posting.
sumber