2015-01-16 52 views
0

我有一个项目的数组。项目可以有子项目,因此字段为parent_id。 我想要显示子项目的列表以及我想要“预览”该子项目的prio1子项目的每个子项目。所以我有两个.each() - 循环,并使用.append()添加HTML(内部和外部)。Inner .each() - 循环与.append()

出于某种原因,预览子项目出现在列表顶部而不是在project-div中。

任何想法我做错了什么?

 var filterdata = this.get_subprojects(project_id); 
     // **** OUTER LOOP ******* 
     filterdata.forEach(function(project) { 
      var subprojects = projectList.get_subprojects(project.project_id, 1); 

     $("#projects>.list").append(
     '<div class="project">' 

      +'<div class="left">' 
       +'<img class="prio-icon" src="img/prio'+project.prio+'.png"/>' 
       +'<img class="type-icon" src="img/type'+project.type+'.png"/>' 
      +'</div>' 

      +'<div class="right">' 
       +'<div class="title">'+project.title+'</div>' 
       +'<div class="next_action_div" >'); 

      //*** INNER LOOP LOOP FOR PREVIEW ***** 
       subprojects.forEach(function(subproject,1) { 
        $("#projects>.list").append(
        +'<span class="next_action">'+subproject.title+'</span>');     

       }); 

      $("#projects>.list").append(
       '</div>' 
      +'</div><!-- end center -->' 
      +'<div style="clear:both;"></div>' 
     +'</div> <!-- end subitem -->'); 
     return $("#projects>.list").html(); 
     }); 
+1

你介意作出[的jsfiddle(http://jsfiddle.net/)出来呢?这将使我们更容易测试,并为您更改代码! :) –

回答

0

你不能.append段的HTML那样。 HTMLstring.append()接受期望适当的HTLM内容。该字符串中的标签会自动关闭。

试试这个:

$('#container').append('<div id="outer">Outer div</div>'); 
 
$("#outer").append("<div>Inner div</div>"); // As example why your code doesn't work: 
 
$("#outer").append("<div>Broken div (Check the rendered HTML, the tag will be fixed)");
div{ 
 
    border: solid 1px black; 
 
    padding: 2px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="container"></div>

+0

好吧,我想我把它全部放在一个字符串中然后。这应该可以解决它,对吧? –

+0

它确实有效!好极了! :-) –