这里我是一个jQuery循环,我正在做的是创建一个字符串并将其附加到div。到目前为止很简单吧?
好吧,我也在循环中循环。问题是我循环内部的循环产生了完全相同的结果。
所以我的第一个循环我正在循环播放一些电视频道和我的第二个循环,我正在循环播放一些电视节目。问题是我的电视节目对于每个频道都是一样的。相当愚蠢的有线网络吧?
如何循环播放所有电视节目并将其附加到正确的电视频道?
shows='';
// loop through the tv channels
$(playlist).each(function(i,value){
// loop through the tv shows
$(value.videos).each(function(i,value){
shows += '<div class="show"><a href="#"><p>'+tv show+'</p></a></div>';
}); end tv show loop
string = '<div class="channel">'+
'<h1>value.name</h1>'+
'<div class="shows">'+shows+'</div>'+
'</div>';
$(string).appendTo('#streams');
}); // end tv chanel loop
我希望html输出看起来像
<div class="channel">
<h1>channel name</h1>
<div class="shows">
<div class="show"><a href="#"><p>show name</p></a></div>
<div class="show"><a href="#"><p>show name</p></a></div>
<div class="show"><a href="#"><p>show name</p></a></div>
</div>
<!-- repeat again -->
答案 0 :(得分:1)
你需要在第一个循环中使用shows='';
// loop through the tv channels
$(playlist).each(function(i,value){
shows='';
........
});
你需要为新频道清空shows
字符串。但是你没有这样做。所以它会连续追加到前一个字符串
答案 1 :(得分:1)
有多个问题
shows
需要在每个playlist
循环value.name
是一个变量值,因此无法将其添加为字符串tv show
可能必须更改为tv.show
尝试
// loop through the tv channels
$(playlist).each(function(i, value) {
var shows = '';
// loop through the tv shows
$(value.videos).each(function(i, tv) {
shows += '<div class="show"><a href="#"><p>' + tv.show
+ '</p></a></div>';
}); // end tv show loop
string = '<div class="channel">' + '<h1>' + value.name + '</h1>'
+ '<div class="shows">' + shows + '</div>' + '</div>';
$(string).appendTo('#streams');
}); // end tv chanel loop
演示:Fiddle