jQuery - pengaturan nilai yang dipilih dari pilih control melalui teks deskripsi

Saya telah memilih kontrol, dan variabel javascript saya telah string teks.

Dengan menggunakan jQuery yang saya inginkan untuk mengatur elemen yang dipilih dari pilih kontrol untuk item dengan teks deskripsi saya (sebagai lawan untuk nilai, yang saya don't memiliki).

Aku tahu setting dengan nilai yang cukup sepele. misalnya

$("#my-select").val(myVal);

Tapi aku'm sedikit bingung untuk melakukan itu melalui teks deskripsi. Saya kira harus ada cara untuk mendapatkan nilai dari teks deskripsi, tapi otak saya terlalu jumat sore-ed untuk dapat bekerja keluar.

Mengomentari pertanyaan (1)
Larutan

Pilih dengan deskripsi untuk jQuery v1.6+

var text1 = 'Two';
$("select option").filter(function() {
  //may want to use $.trim in here
  return $(this).text() == text1;
}).prop('selected', true);

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select>
  One
  Two
Komentar (15)

Aku ingin't diuji ini, tetapi ini mungkin bekerja untuk anda.

$("select#my-select option")
   .each(function() { this.selected = (this.text == myVal); });
Komentar (0)

Coba ini...untuk memilih opsi dengan teks myText

$("#my-Select option[text=" + myText +"]").attr("selected","selected");
Komentar (5)

Saya melakukannya dengan cara ini (jQuery 1.9.1)

$("#my-select").val("Dutch").change();

Catatan: don't lupa ubah(), saya telah mencari untuk waktu yang lama karena itu :)

Komentar (2)
$("#myselect option:contains('YourTextHere')").val();

akan mengembalikan nilai dari opsi pertama berisi teks deskripsi. Diuji dan bekerja.

Komentar (4)

Untuk menghindari semua versi jQuery komplikasi, saya benar-benar merekomendasikan menggunakan salah satu dari ini benar-benar sederhana fungsi javascript...


function setSelectByValue(eID,val)
{ //Loop through sequentially//
  var ele=document.getElementById(eID);
  for(var ii=0; ii
Komentar (3)

Saya tahu ini adalah sebuah posting lama, tapi aku tidak't mendapatkan untuk memilih teks menggunakan jQuery 1.10.3 dan solusi di atas. Akhirnya saya menggunakan kode berikut (variasi spoulson's solusi):

      var textToSelect = "Hello World";

      $("#myDropDown option").each(function (a, b) {
            if ($(this).html() == textToSelect ) $(this).attr("selected", "selected");
        });

Berharap itu membantu seseorang.

Komentar (0)

Baris ini bekerja:

$("#myDropDown option:contains(myText)").attr('selected', true);
Komentar (0)
 $("#Test").find("option:contains('two')").each(function(){
     if( $(this).text() == 'two' ) {
        $(this).attr("selected","selected");
     }
 });

Jika pernyataan yang tidak tepat sesuai dengan "dua" dan "dua tiga" tidak akan dicocokkan

Komentar (2)

Cara termudah dengan 1.7+ adalah:

$("#myDropDown option:text=" + myText +"").attr("selected", "selected"); 

1.9+

$("#myDropDown option:text=" + myText +"").prop("selected", "selected"); 

Diuji dan bekerja.

Komentar (2)

lihatlah jquery selectedbox plugin

selectOptions(value[, clear]): 

Pilih opsi dengan nilai, menggunakan string sebagai parameter $("#myselect2").pilih pilihan("Nilai 1");, atau ekspresi reguler $("#myselect2").pilih pilihan(/^val/i);.

Anda juga dapat jelas sudah memilih pilihan: $("#myselect2").pilih pilihan("2", true);

Komentar (0)

Berikut ini adalah cara yang sangat sederhana. plz menggunakannya

$("#free").val("y").change();
Komentar (0)

Hanya di samping catatan. Saya dipilih nilai itu tidak diatur. Dan aku telah mencari di seluruh net. Sebenarnya saya harus memilih nilai setelah panggilan kembali dari layanan web, karena saya mendapatkan data dari itu.

$("#SelectMonth option[value=" + DataFromWebService + "]").attr('selected', 'selected'); 
$("#SelectMonth").selectmenu('refresh', true);

Jadi refresh dari pemilih itu adalah satu-satunya hal yang saya hilang.

Komentar (1)

Saya menemukan bahwa dengan menggunakan y anda akan berakhir dengan beberapa opsi yang dipilih ketika anda didn't ingin - solusi adalah dengan menggunakan prop:

$("#myDropDown pilihan:text=" + myText +",").prop("yang dipilih", "dipilih");

Komentar (0)

Saya punya masalah dengan contoh di atas, dan masalah ini disebabkan oleh fakta bahwa saya pilih kotak nilai-nilai yang telah diisikan dengan fixed string dengan panjang 6 karakter, tetapi parameter yang dilewatkan di wasn't tetap panjang.

Saya memiliki sebuah rpad fungsi yang akan pad kanan sebuah string dengan panjang yang ditentukan, dan dengan karakter yang ditentukan. Jadi, setelah padding parameter kerjanya.

$('#wsWorkCenter').val(rpad(wsWorkCenter, 6, ' '));

function rpad(pStr, pLen, pPadStr) {
if (pPadStr == '') {pPadStr == ' '};
while (pStr.length < pLen)
    pStr = pStr + pPadStr;
return pStr; 
} 
Komentar (0)
 $('#theYear').on('change', function () {
 FY = $(this).find('option:selected').text();
 $('#theFolders').each(function () {
     $('option:not(:contains(' + FY + '))', this).hide();
 });
 $('#theFolders').val(0);
});

$('#theYear').on('mousedown', function () {
 $('#theFolders option').show().find('option:contains("Select")', this).attr('selected', 'selected');
});
Komentar (0)

Heres pilihan yang mudah. Hanya mengatur opsi daftar yang kemudian mengatur teks yang dipilih sebagai nilai:

$("#ddlScheduleFrequency option").selected(text("Select One..."));
Komentar (0)

Ini jawaban yang diterima tidak tampak benar, sementara .val('newValue') adalah benar untuk fungsi, mencoba untuk mengambil pilih oleh namanya tidak bekerja untuk saya, saya harus menggunakan id dan classname untuk mendapatkan elemen saya

Komentar (1)

Mendapatkan anak-anak pilih kotak; loop melalui mereka; ketika anda telah menemukan salah satu yang anda inginkan, ditetapkan sebagai opsi yang dipilih; return false untuk menghentikan perulangan.

Komentar (0)