jQuery循环里面的字符串?

时间:2013-04-19 04:07:29

标签: ajax jquery

这里我是一个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 -->

2 个答案:

答案 0 :(得分:1)

你需要在第一个循环中使用shows='';

// loop through the tv channels
$(playlist).each(function(i,value){
shows='';
........
});

你需要为新频道清空shows字符串。但是你没有这样做。所以它会连续追加到前一个字符串

答案 1 :(得分:1)

有多个问题

  1. 变量shows需要在每个playlist循环
  2. 中重置
  3. value.name是一个变量值,因此无法将其添加为字符串
  4. tv show可能必须更改为tv.show
  5. 尝试

    // 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