使用 jquery 在 select 中获取 selected 选项的键值
Get key value for selected option in select using jquery
我有一个JSON喜欢
quarterJson = [{"quarter_id":1, "quarter":"Quarter 1", "end_date":'31.03.'},
{"quarter_id":2, "quarter":"Quarter 2", "end_date":'30.06.'},
{"quarter_id":3, "quarter":"Quarter 3", "end_date":'31.09.'},
{"quarter_id":4, "quarter":"Quarter 4", "end_date":'31.12.'}];
并使用它填充 select 框的选项
$('#quarterSel').empty();
$('#quarterSel').append('<option value="0">--Select--</option>');
$.each(quarterJson ,function(idx,ob){
$('#quarterSel').append
('<option value="'+ob[quarter_id]+'">'+ob[quarter]+'</option>');
现在我想为 select 框 quarterSel
中的 selected 选项获取 "end_date"
的值。我可以用下面的代码得到这个
var quarter_end_date = '';
$.each(quarterJson, function()
{
if(this.quarter_id == $('#quarterSel').val())
{
quarter_end_date = this.end_date;
return false;
}
});
有没有更好的方法(避免循环)来做到这一点?
谢谢..
您可以使用数据 api 存储与选项关联的数据,然后使用它来获取结束日期
$('#quarterSel').empty();
$('#quarterSel').append('<option value="0">--Select--</option>');
$.each(quarterJson, function (idx, ob) {
$('<option/>', {
text: ob.quarter,
value: ob.quarter_id
}).data('data', ob).appendTo('#quarterSel');
});
var data = $('#quarterSel option:selected').data('data');
var quarter_end_date = data ? data.end_date : '';
您可以使用 Grep 函数来获取值
var arrayfeedback ;
arrayfeedback = jQuery.grep(quarterJson, function (n, i) {
return parseInt(quarter_id) == +$('#quarterSel').val()
});
quarter_end_date=arrayfeedback[0].end_date ;
我有一个JSON喜欢
quarterJson = [{"quarter_id":1, "quarter":"Quarter 1", "end_date":'31.03.'},
{"quarter_id":2, "quarter":"Quarter 2", "end_date":'30.06.'},
{"quarter_id":3, "quarter":"Quarter 3", "end_date":'31.09.'},
{"quarter_id":4, "quarter":"Quarter 4", "end_date":'31.12.'}];
并使用它填充 select 框的选项
$('#quarterSel').empty();
$('#quarterSel').append('<option value="0">--Select--</option>');
$.each(quarterJson ,function(idx,ob){
$('#quarterSel').append
('<option value="'+ob[quarter_id]+'">'+ob[quarter]+'</option>');
现在我想为 select 框 quarterSel
中的 selected 选项获取 "end_date"
的值。我可以用下面的代码得到这个
var quarter_end_date = '';
$.each(quarterJson, function()
{
if(this.quarter_id == $('#quarterSel').val())
{
quarter_end_date = this.end_date;
return false;
}
});
有没有更好的方法(避免循环)来做到这一点? 谢谢..
您可以使用数据 api 存储与选项关联的数据,然后使用它来获取结束日期
$('#quarterSel').empty();
$('#quarterSel').append('<option value="0">--Select--</option>');
$.each(quarterJson, function (idx, ob) {
$('<option/>', {
text: ob.quarter,
value: ob.quarter_id
}).data('data', ob).appendTo('#quarterSel');
});
var data = $('#quarterSel option:selected').data('data');
var quarter_end_date = data ? data.end_date : '';
您可以使用 Grep 函数来获取值
var arrayfeedback ;
arrayfeedback = jQuery.grep(quarterJson, function (n, i) {
return parseInt(quarter_id) == +$('#quarterSel').val()
});
quarter_end_date=arrayfeedback[0].end_date ;