json和js的新内容,所以如果有人教我一点,我会恭喜。 Json数组:
var info = [
{"t":"09:00","b":"Vaba"},
{"t":"09:30","b":"Vaba"} ] ;
和JS部分:
var output='';
for (var i = 0; i <= info.length; i++) {
for (info.t of info[i] ) {
output += '<option> ' + info[i].t + ' ' + info[i].b + '</option>'; } };
var update = document.getElementById('start_time');
update.innerHTML = output;
我在HTML中得到的结果如下:
<option>9.00 Vaba</option>
<option>9.00 Vaba</option>
<option>9.30 Vaba</option>
<option>9.30 Vaba</option>
这是我到目前为止找到的唯一可行的解决方案,但我不需要双重列表(时间和文本字符串两次)。编写任何函数而不是第二个for循环以错误信息[i] undefined ...
结束非常感谢。
答案 0 :(得分:1)
只需删除额外的for
循环即可。还要注意引用info
中的越界索引。当i = info.length
时,info[i]
超出范围。只要确保它永远不会那么远:
var output='';
for (var i = 0; i < info.length; i++) {
output += '<option> ' + info[i].t + ' ' + info[i].b + '</option>';
}
var update = document.getElementById('start_time');
update.innerHTML = output;
答案 1 :(得分:0)
试试这个,它将花费更少的执行时间,并且还会处理内存。
var optionList=[];
var len= info.length;
for (var i = 0; i < len; i++) {
optionList.push('<option> ' + info[i].t + ' ' + info[i].b + '</option>');
}
var update = document.getElementById('start_time');
update.innerHTML = optionList.join('');
答案 2 :(得分:0)
谢谢大家的回复,最终解决方案是jquery each()