我有一个类似
的JSONquarterJson = [{"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.'}];
并使用它填充选择框的选项
$('#quarterSel').empty();
$('#quarterSel').append('<option value="0">--Select--</option>');
$.each(quarterJson ,function(idx,ob){
$('#quarterSel').append
('<option value="'+ob[quarter_id]+'">'+ob[quarter]+'</option>');
现在,我希望在选择框"end_date"
中为所选选项获取quarterSel
的值。我可以使用下面的代码
var quarter_end_date = '';
$.each(quarterJson, function()
{
if(this.quarter_id == $('#quarterSel').val())
{
quarter_end_date = this.end_date;
return false;
}
});
这样做有更好的方法(避免循环)吗? 谢谢..
答案 0 :(得分:0)
您可以使用数据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 : '';
答案 1 :(得分:0)
您可以使用 Grep 功能获取值
var arrayfeedback ;
arrayfeedback = jQuery.grep(quarterJson, function (n, i) {
return parseInt(quarter_id) == +$('#quarterSel').val()
});
quarter_end_date=arrayfeedback[0].end_date ;