Baiklah, katakan saya ini:
<select id='list'>
<option value='1'>Option A</option>
<option value='2'>Option B</option>
<option value='3'>Option C</option>
</select>
Apa yang akan selector terlihat seperti jika saya ingin mendapatkan "Opsi B" ketika saya memiliki nilai '2'?
Harap dicatat bahwa ini adalah tidak menanyakan bagaimana untuk mendapatkan selected nilai teks, tetapi hanya salah satu dari mereka, apakah dipilih atau tidak, tergantung pada nilai atribut. Saya mencoba:
$("#list[value='2']").text();
Tapi itu tidak bekerja.
Jika anda'd ingin mendapatkan pilihan dengan nilai 2, menggunakan
$("#list option[value='2']").text();
Jika anda'd ingin mendapatkan apapun opsi yang dipilih saat ini, penggunaan
$("#list option:selected").text();
Ini bekerja dengan baik bagi saya, saya sedang mencari cara untuk mengirim dua nilai yang berbeda dengan pilihan yang dihasilkan oleh MySQL, dan berikut ini adalah generik dan dinamis:
$(ini).menemukan("pilihan:memilih").teks();
Seperti disebutkan dalam salah satu komentar. Dengan ini saya bisa membuat sebuah fungsi dinamis yang bekerja dengan sepenuh seleksi kotak yang saya ingin mendapatkan kedua nilai, nilai pilihan dan teks.
Beberapa hari yang lalu saya menyadari bahwa ketika memperbarui jQuery dari 1,6-1,9 situs saya menggunakan kode ini, ini berhenti bekerja... mungkin konflik dengan bagian lain dari kode... anyway, solusinya adalah dengan menghapus pilihan dari find() call:
$(this).find(":selected").text();
Itu solusi saya... anda hanya dapat menggunakannya jika anda memiliki masalah setelah update jQuery anda.
Berdasarkan asli HTML diposting oleh Paolo saya datang dengan langkah berikut.
$("#list").change(function() {
alert($(this).find("option:selected").text()+' clicked!');
});
Ini telah diuji untuk bekerja pada Internet Explorer dan Firefox.
jQuery("pilih opsi[nilai=2]").teks();
jQuery("select option:selected").teks();
Ini adalah Pertanyaan lama yang belum diperbarui dalam beberapa waktu cara yang benar untuk melakukan hal ini sekarang akan menggunakan
$("#action").on('change',function() {
alert($(this).find("option:selected").text()+' clicked!');
});
Saya berharap ini bisa membantu :-)
Anda bisa mendapatkan pilihan yang dipilih teks dengan menggunakan fungsi .teks();
anda dapat memanggil fungsi seperti ini :
jQuery("select option:selected").text();
Sementara "perulangan" melalui dibuat secara dinamis memilih elemen dengan .masing-masing(fungsi()...): $("pilihan:memilih").teks();
dan $(ini + " pilihan:memilih").teks()
tidak kembali opsi yang dipilih teks - bukan itu nol.
Tapi Peter Mortensen's solusi bekerja:
$(this).find("option:selected").text();
Aku tidak tahu mengapa cara yang biasa tidak berhasil dalam .masing-masing()
(mungkin saya sendiri kesalahan), tapi terima kasih, Peter. Saya tahu bahwa itu't pertanyaan awal, tapi saya menyebutkan "untuk pemula yang datang melalui Google."
Saya akan mulai dengan $('#daftar pilihan:memilih").masing-masing()
kecuali aku yang dibutuhkan untuk mengambil barang-barang dari pilih elemen juga.
Gunakan:
function selected_state(){
jQuery("#list option").each(function(){
if(jQuery(this).val() == "2"){
jQuery(this).attr("selected","selected");
return false;
}
});
}
jQuery(document).ready(function(){
selected_state();
});
Saya sedang mencari untuk mendapatkan val oleh internal field nama, bukan ID dan berasal dari google ke posting ini membantu tapi tidak menemukan solusi yang saya butuhkan, tapi saya punya solusi dan di sini adalah:
Jadi ini mungkin bisa membantu seseorang mencari nilai yang dipilih dengan bidang internal nama bukan dengan menggunakan id yang panjang untuk daftar SharePoint:
var e = $('select[title="IntenalFieldName"] option:selected').text();
Aku butuh jawaban ini seperti aku sedang berhadapan dengan dinamis cor objek, dan metode lain di sini tampaknya tidak bekerja:
element.options[element.selectedIndex].text
Hal ini tentu saja menggunakan DOM objek bukan parsing HTML-nya dengan nodeValue, childNodes, dll.
Tip: anda dapat menggunakan kode di bawah ini jika nilai anda adalah dinamis:
$("#list option[value='"+aDynamicValue+"']").text();
Atau (baik gaya)
$("#list option").filter(function() {
return this.value === aDynamicValue;
}).text();
Seperti yang disebutkan di https://stackoverflow.com/questions/12135825/jquery-get-specific-option-tag-text-and-placing-dynamic-variable-to-the-value/12135848
Anda bisa mendapatkan salah satu dari cara berikut
$("#list").find('option').filter('[value=2]').text()
$("#list").find('option[value=2]').text()
$("#list").children('option[value=2]').text()
$("#list option[value='2']").text()
$(function(){
console.log($("#list").find('option').filter('[value=2]').text());
console.log($("#list").find('option[value=2]').text());
console.log($("#list").children('option[value=2]').text());
console.log($("#list option[value='2']").text());
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<select id='list'>
<option value='1'>Option A</option>
<option value='2'>Option B</option>
<option value='3'>Option C</option>
</select>
Aku ingin versi dinamis untuk memilih beberapa yang akan menampilkan apa yang dipilih ke kanan (berharap saya'd baca dan dilihat $(ini).menemukan
... sebelumnya):
<script type="text/javascript">
$(document).ready(function(){
$("select[showChoices]").each(function(){
$(this).after("<span id='spn"+$(this).attr('id')+"' style='border:1px solid black;width:100px;float:left;white-space:nowrap;'> </span>");
doShowSelected($(this).attr('id'));//shows initial selections
}).change(function(){
doShowSelected($(this).attr('id'));//as user makes new selections
});
});
function doShowSelected(inId){
var aryVals=$("#"+inId).val();
var selText="";
for(var i=0; i<aryVals.length; i++){
var o="#"+inId+" option[value='"+aryVals[i]+"']";
selText+=$(o).text()+"<br>";
}
$("#spn"+inId).html(selText);
}
</script>
<select style="float:left;" multiple="true" id="mySelect" name="mySelect" showChoices="true">
<option selected="selected" value=1>opt 1</option>
<option selected="selected" value=2>opt 2</option>
<option value=3>opt 3</option>
<option value=4>opt 4</option>
</select>