我有一个简单的块,我想显示来自JSON的按钮。
下面是我的JSON电影:
{
"movies": [
{
"title": "Mena",
"movieid": "1",
"movie_url": "videos\/mena.mp4",
"buttons": [
{
"left": 556,
"top": 231,
"start_time": 5.44,
"end_time": 6.76,
"width": 162,
"height": 73,
"buttonid": "1",
"label": "No"
},
{
"left": 200,
"top": 200,
"start_time": 5.56,
"end_time": 6.56,
"width": 162,
"height": 100,
"buttonid": "2",
"label": "Yes"
}
]
}
]
}
下面是我的用于将按钮显示到DOM的JS:
for(var j=0; j<movies.length; j++){
for(a=0; a< movies[j].buttons.length; a++){
var videobtns = $("<div class='video-btns'></div>")
$(videobtns).html(movie[j].buttons.buttoid);
$("#video-container").append(videobtns);
}
}
});
我的解决方案未按预期工作。我有许多for循环。
我想显示这些按钮及其所有属性(顶部、左侧、宽度、高度、按钮ID、标签等);
我需要做哪些更改才能使其正常工作?
3条答案
按热度按时间bnl4lu3b1#
您的代码有一些问题,例如
buttoid
应该是buttonid
,而不是$(videobtns).html(movie[j].buttons.buttoid);
,它应该是类似movies[j].buttons[a].buttonid
的内容,因为movie
不是变量,您需要指定buttons
数组索引来访问buttonid
属性。我不明白为什么这段代码会产生4个按钮,旁边有一组给定的数据,执行两次。
第一个
eiee3dmh2#
你有一些丢失变量的错误。还有一些循环错误,下面是解决方法
1.您的代码不起作用。
1.你得到4个按钮的原因是因为你循环了两次数组
movie[j].buttons.buttoid
,里面有两个元素。所以2乘以2 = 4。而现场的例子
https://codepen.io/rollrodrig/pen/YoBJJX
gkn4icbw3#
您有循环错误(和命名错误),缺少按钮索引:数据.影片[j].按钮[a]