Javascript JQuery在数据之前附加结束标记

Javascript JQuery在数据之前附加结束标记,javascript,jquery,recursion,Javascript,Jquery,Recursion,我正在创建一个支持jQuery的AdobeAIR应用程序。但是,我使用的递归函数首先关闭标记,然后写入数据 我的密码是 function displayTodoItems(id) { id = parseInt(id) if(!id) $("#todoLists").empty(); var list = fetchTodoItems(id); if(list.data == null) return; var numRecords = list.data.length;

我正在创建一个支持jQuery的AdobeAIR应用程序。但是,我使用的递归函数首先关闭标记,然后写入数据

我的密码是

function displayTodoItems(id)
{
 id = parseInt(id)

 if(!id)
  $("#todoLists").empty();

 var list = fetchTodoItems(id);
 if(list.data == null)
  return;
 var numRecords = list.data.length;  

 for (var i=0;i<numRecords;i++)
 {  
  dateObj = new Date(list.data[i].date_created);

  time = dateObj.getFullYear()+"-"+ String("0"+dateObj.getMonth()).slice(-2)+"-"+ String("0"+dateObj.getDate()).slice(-2)+" "+  String("0"+dateObj.getHours()).slice(-2)+":"+ String("0"+dateObj.getMinutes()).slice(-2);

   $('#todoLists').append('<div id="list'+list.data[i].id+'" class="listitem '+(id?'listitem-sub':'listitem-main')+'" style="background-color: #' + list.data[i].color + ';' +(list.data[i].color/2 < 0x7FFFFF?' color: #FFF;':'')+ '">'+time+ '<br>' + unescape(list.data[i].data)+ '</div>');
  //get child items
  displayTodoItems(list.data[i].id);
  $('#todoLists').append('</div>');

 } 
}
函数displayTodoItems(id)
{
id=parseInt(id)
如果(!id)
$(“#topolists”).empty();
var list=fetchTodoItems(id);
if(list.data==null)
返回;
var numRecords=list.data.length;
对于(var i=0;i用于完整元素,您不能添加部分字符串或仅添加结束标记。有许多方法可以解决此问题,我将在此处展示一个最小更改版本:

function displayTodoItems(id, parent)
{
 id = parseInt(id);
 parent = parent || $("#todoLists");

 if(!id) parent.empty();

 var list = fetchTodoItems(id);
 if(list.data == null)
  return;
 var numRecords = list.data.length;  

 for (var i=0;i<numRecords;i++)
 {  
  var dateObj = new Date(list.data[i].date_created),
      time = dateObj.getFullYear()+"-"+ String("0"+dateObj.getMonth()).slice(-2)+"-"+ String("0"+dateObj.getDate()).slice(-2)+" "+  String("0"+dateObj.getHours()).slice(-2)+":"+ String("0"+dateObj.getMinutes()).slice(-2),
      elem = $('<div id="list'+list.data[i].id+'" class="listitem '+(id?'listitem-sub':'listitem-main')+'" style="background-color: #' + list.data[i].color + ';' +(list.data[i].color/2 < 0x7FFFFF?' color: #FFF;':'')+ '">'+time+ '<br>' + unescape(list.data[i].data)+ '</div>')
                .appendTo(parent);         
  displayTodoItems(list.data[i].id, elem);
 } 
}
函数displayTodoItems(id,父项)
{
id=parseInt(id);
家长=家长| |$(“#托多利斯特”);
如果(!id)parent.empty();
var list=fetchTodoItems(id);
if(list.data==null)
返回;
var numRecords=list.data.length;

对于(var i=0;听着,谢谢你。我会检查这个并回到这个论坛。听起来很有希望。问候你,KhuramThank you Nick。很有魅力。今天学到了一些新东西。善意的RegardsNick,一个小请求。我似乎无法将更改为
    。我希望
      在for循环之前开始,所有元素变量填充
    • ,然后结束t他以
    结束循环。这样,所有div结构都变成了nest
      。这会很困难吗?
      function displayTodoItems(id, parent)
      {
       id = parseInt(id);
       parent = parent || $("#todoLists");
      
       if(!id) parent.empty();
      
       var list = fetchTodoItems(id);
       if(list.data == null)
        return;
       var numRecords = list.data.length;  
      
       for (var i=0;i<numRecords;i++)
       {  
        var dateObj = new Date(list.data[i].date_created),
            time = dateObj.getFullYear()+"-"+ String("0"+dateObj.getMonth()).slice(-2)+"-"+ String("0"+dateObj.getDate()).slice(-2)+" "+  String("0"+dateObj.getHours()).slice(-2)+":"+ String("0"+dateObj.getMinutes()).slice(-2),
            elem = $('<div id="list'+list.data[i].id+'" class="listitem '+(id?'listitem-sub':'listitem-main')+'" style="background-color: #' + list.data[i].color + ';' +(list.data[i].color/2 < 0x7FFFFF?' color: #FFF;':'')+ '">'+time+ '<br>' + unescape(list.data[i].data)+ '</div>')
                      .appendTo(parent);         
        displayTodoItems(list.data[i].id, elem);
       } 
      }