2015-01-16 56 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

它確實有效!好極了! :-) –