Bagaimana saya bisa mendapatkan semua opsi pilih melalui jQuery dengan memberikan ID-nya?
Saya hanya mencari untuk mendapatkan nilai-nilai mereka, bukan teksnya.
Bagaimana saya bisa mendapatkan semua opsi pilih melalui jQuery dengan memberikan ID-nya?
Saya hanya mencari untuk mendapatkan nilai-nilai mereka, bukan teksnya.
Jawaban:
Menggunakan:
$("#id option").each(function()
{
// Add $(this).val() to your list
});
$.map
jauh lebih elegan dan lebih rentan kesalahan (lihat di bawah).
$('#id option').map((index, option) => option.value)
: perhatikan bagaimana tanda tangan panggil terbalik dibandingkan dengan map
fungsi JS "vanilla" ( (item, index) =>
)
Saya tidak tahu jQuery, tetapi saya tahu bahwa jika Anda mendapatkan elemen pilih, itu berisi objek 'opsi'.
var myOpts = document.getElementById('yourselect').options;
alert(myOpts[0].value) //=> Value of the first option
$.map
mungkin cara paling efisien untuk melakukan ini.
var options = $('#selectBox option');
var values = $.map(options ,function(option) {
return option.value;
});
Anda dapat menambahkan opsi perubahan $('#selectBox option:selected')
jika Anda hanya menginginkan yang dipilih.
Baris pertama memilih semua kotak centang dan menempatkan elemen jQuery mereka ke dalam variabel. Kami kemudian menggunakan .map
fungsi jQuery untuk menerapkan fungsi ke masing-masing elemen variabel itu; semua yang kami lakukan adalah mengembalikan nilai setiap elemen karena hanya itu yang kami pedulikan. Karena kami mengembalikannya ke dalam fungsi peta, sebenarnya ia membangun array nilai seperti yang diminta.
$('#selectBox').val()
akan mengembalikan array nilai yang dipilih.
Beberapa jawaban menggunakan each
, tetapi map
merupakan alternatif yang lebih baik di sini IMHO:
$("select#example option").map(function() {return $(this).val();}).get();
Ada (setidaknya) dua map
fungsi di jQuery. Jawaban Thomas Petersen menggunakan "Utilities / jQuery.map"; jawaban ini menggunakan "Traversing / map" (dan karenanya sedikit kode pembersih).
Itu tergantung pada apa yang akan Anda lakukan dengan nilai-nilai itu. Jika Anda, katakanlah, ingin mengembalikan nilai dari suatu fungsi, map
mungkin merupakan alternatif yang lebih baik. Tetapi jika Anda akan menggunakan nilai-nilai secara langsung Anda mungkin ingin each
.
get()
objek yang dikembalikan untuk bekerja dengan array dasar." - api.jquery.com/map
text()
sebaliknya val()
. Terima kasih ! (Saya menyebabkan Anda membaca lebih dari 1000 ;->
)
$('select#id').find('option').each(function() {
alert($(this).val());
});
$("#id option").each(function()
{
$(this).prop('selected', true);
});
Meskipun, cara yang BENAR adalah untuk mengatur properti DOM elemen, seperti:
$("#id option").each(function(){
$(this).attr('selected', true);
});
Ini akan menempatkan nilai opsi #myselectbox
menjadi array bersih yang bagus untuk Anda:
// First, get the elements into a list
var domelts = $('#myselectbox option');
// Next, translate that into an array of just the values
var values = $.map(domelts, function(elt, i) { return $(elt).val();});
$.map(domelts, elt=> $(elt).val())
Anda dapat mengambil semua "nilai yang dipilih" dengan nama kotak centang dan menyajikannya dalam sengatan yang dipisahkan oleh ",".
Cara yang bagus untuk melakukan ini adalah dengan menggunakan $ .map (): jQuery:
var selected_val = $.map($("input[name='d_name']:checked"), function(a)
{
return a.value;
}).join(',');
alert(selected_val);
select
dan option
bukan kotak centang.
Cara paling efisien untuk melakukan ini adalah menggunakan $.map()
Contoh:
var values = $.map($('#selectBox option'), function(ele) {
return ele.value;
});
Anda dapat menggunakan kode berikut untuk itu:
var assignedRoleId = new Array();
$('#RolesListAssigned option').each(function(){
assignedRoleId.push(this.value);
});
Untuk opsi multiselect:
$('#test').val()
mengembalikan daftar nilai yang dipilih.
$('#test option').length
mengembalikan total jumlah opsi (baik yang dipilih maupun yang tidak dipilih)
Ini adalah Skrip sederhana dengan jQuery:
var items = $("#IDSELECT > option").map(function() {
var opt = {};
opt[$(this).val()] = $(this).text();
return opt;
}).get();
var selectvalues = [];
for(var i = 0; i < items.length; i++) {
for(key in items[i]) {
var id = key;
var text = items[i][key];
item = {}
item ["id"] = id;
item ["text"] = text;
selectvalues.push(item);
}
}
console.log(selectvalues);
copy(selectvalues);
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
Berikut ini adalah contoh sederhana dalam jquery untuk mendapatkan semua nilai, teks, atau nilai dari item yang dipilih, atau teks dari item yang dipilih
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).val());
})
printOptionValues = () => {
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).val());
})
}
printOptionTexts = () => {
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).text());
})
}
printSelectedItemText = () => {
console.log($('#nCS1 option:selected').text());
}
printSelectedItemValue = () => {
console.log($('#nCS1 option:selected').val());
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select size="1" id="nCS1" name="nCS1" class="form-control" >
<option value="22">Australia</option>
<option value="23">Brunei</option>
<option value="33">Cambodia</option>
<option value="32">Canada</option>
<option value="27">Dubai</option>
<option value="28">Indonesia</option>
<option value="25">Malaysia</option>
</select>
<br/>
<input type='button' onclick='printOptionValues()' value='print option values' />
<br/>
<input type='button' onclick='printOptionTexts()' value='print option texts' />
<br/>
<input type='button' onclick='printSelectedItemText()' value='print selected option text'/>
<br/>
<input type='button' onclick='printSelectedItemValue()' value='print selected option value' />
$("input[type=checkbox][checked]").serializeArray();
Atau:
$(".some_class[type=checkbox][checked]").serializeArray();
Untuk melihat hasilnya:
alert($("input[type=checkbox][checked]").serializeArray().toSource());
Jalan pintas
$(() => {
$('#myselect option').each((index, data) => {
console.log(data.attributes.value.value)
})})
atau
export function GetSelectValues(id) {
const mData = document.getElementById(id);
let arry = [];
for (let index = 0; index < mData.children.length; index++) {
arry.push(mData.children[index].value);
}
return arry;}