我正在尝试从指定日期开始访问时间。
这是HTML
<input type="date" name="fromdate" id="fromdate" onchange="displaytimefromdate(this.value)" />
<div id="timepicker"></div>
这是Javascript代码:
var availableTime = {"2014-07-18":["Friday, 02:02:00 - 00:00:00","Friday, 01:01:00 - 01:01:00"],"2014-07-19":["Saturday, 02:02:00 - 00:00:00","Saturday, 01:01:00 - 01:01:00"],"2014-07-20":["Sunday, 02:02:00 - 00:00:00","Sunday, 01:01:00 - 01:01:00"]};
function displaytimefromdate(timefromdate) {
jQuery('#timepicker').html('<div class="form-group"><div class="radio"><label><input class="form-control input-lg bg-darkBlue fg-white" type="radio" id="timepicker" name="timepicker" /></label>'+availableTime.timefromdate+'</div></div>');
}
以下是JsFiddle: - http://jsfiddle.net/rW73e/
帮助将不胜感激。
由于
答案 0 :(得分:1)
看看这里:
我给timefromdate一个直接的字符串值。
所以,
availableTime[timefromdate];
工作正常。没问题。
您的日期对象键限制为availableTime
中包含的2或3个值,这些值直接映射到时间。其他日期未映射。
如果您选择availableTime
对象中不存在的其他日期,则肯定会返回undefined
。
答案 1 :(得分:0)
如果我理解正确,你试图从你的json对象中获取一个值。
尝试:
availableTime[timefromdate]
而不是:
availableTime.timefromdate
希望这有帮助
答案 2 :(得分:0)
使用括号表示法它可以正常工作,但是您尝试访问的对象定义为数组。
var availableTime = {"2014-07-18":["Friday, 02:02:00 - 00:00:00","Friday, 01:01:00 - 01:01:00"],"2014-07-19":["Saturday, 02:02:00 - 00:00:00","Saturday, 01:01:00 - 01:01:00"],"2014-07-20":["Sunday, 02:02:00 - 00:00:00","Sunday, 01:01:00 - 01:01:00"]};
function displaytimefromdate(timefromdate) {
jQuery('#timepicker').html('<div class="form-group"><div class="radio"><label><input class="form-control input-lg bg-darkBlue fg-white" type="radio" id="timepicker" name="timepicker" /></label>'+availableTime[timefromdate]+'</div></div>');
}
如果要使用整个块,则应将对象重新排列为:
var availableTime = {"2014-07-18":["Friday, 02:02:00 - 00:00:00, Friday, 01:01:00 - 01:01:00"],"2014-07-19":["Saturday, 02:02:00 - 00:00:00, Saturday, 01:01:00 - 01:01:00"],"2014-07-20":["Sunday, 02:02:00 - 00:00:00, Sunday, 01:01:00 - 01:01:00"]};
...或访问数组中的值:
function displaytimefromdate(timefromdate) {
jQuery('#timepicker').html('<div class="form-group"><div class="radio"><label><input class="form-control input-lg bg-darkBlue fg-white" type="radio" id="timepicker" name="timepicker" /></label>'+availableTime[timefromdate][0]+'</div></div>');