提问者:小点点

我想将动态<ul>绑定到动态创建的<html>表


我想将动态

    绑定到动态创建的表。 根据代码,第一个图像是正确的。

    下面所示的图像与下面的代码是完美的,

        $("#forbtn").click(function()    
        {
          
            $.ajax({
                url: "json/animals.json",
                dataType : "json",
                type:"post",
                success : function(data) {
                   
                   //console.log(data);                    
    
                   //const myobj = JSON.parse(data);
                   //console.log(myobj);
    
                   var myobj = data;
    
                   var tabdata = myobj.length;
                   var tablebody = '<table border="1" width="100%"><thead><tr><th class="tabhead"> Name </th><th class="tabhead"> Species </th><th class="tabhead"> Foods </th></tr></thead><tbody>';
                   for (i=0 ; i < myobj.length; i++)
                   {
                        tablebody += '<tr>';
                        tablebody += '<td class="tabdat">';
                        tablebody += myobj[i].name;
                        tablebody += '</td>';
                        tablebody += '<td class="tabdat">';
                        tablebody += myobj[i].species;
                        tablebody += '</td>';
                        tablebody += '<td class="tabdat">'
                        tablebody += myobj[i].foods;                                     
                        tablebody += '</td>';
                   }
                   tablebody += '</tbody></table>';
                   $("#table2").html(tablebody);
                   $("#table2").css({"margin-top" : "10px"});    
                   $("#table2 .tabhead").css({"padding":"5px" , "background-color" : "#E6E6E6"});
                   $("#table2 .tabdat").css({"padding":"5px" , "background-color" : "#FAFAFA"});
                }
            });
        });
    

    但是,我需要这样的内容,我已经尝试在提到的中包含

      ,但是它给出了for循环的语法错误。 我不明白for循环语法中有什么错误。

      $.ajax({
                  url: "json/animals.json",
                  dataType : "json",
                  type:"post",
                  success : function(data) {
                     
                     //console.log(data);                    
      
                     //const myobj = JSON.parse(data);
                     //console.log(myobj);
      
                     var myobj = data;
      
                     var tabdata = myobj.length;
                     var tablebody = '<table border="1" width="100%"><thead><tr><th class="tabhead"> Name </th><th class="tabhead"> Species </th><th class="tabhead"> Foods </th></tr></thead><tbody>';
                     for (i=0 ; i < myobj.length; i++)
                     {
                          tablebody += '<tr>';
                          tablebody += '<td class="tabdat">';
                          tablebody += myobj[i].name;
                          tablebody += '</td>';
                          tablebody += '<td class="tabdat">';
                          tablebody += myobj[i].species;
                          tablebody += '</td>';
                          tablebody += '<td class="tabdat">'
                                       '<ul><li>'  for(j=0 ; j<myobj[i].foods.likes.length; j++)  
                                       {
                                          myobj[i].foods.likes[j];
                                       } '<li></ul>';
                          tablebody += '</td>';
                     }
                     tablebody += '</tbody></table>';
                     $("#table2").html(tablebody);
                     $("#table2").css({"margin-top" : "10px"});    
                     $("#table2 .tabhead").css({"padding":"5px" , "background-color" : "#E6E6E6"});
                     $("#table2 .tabdat").css({"padding":"5px" , "background-color" : "#FAFAFA"});
                  }
              });
      

      下面是json

      [
        {
          "name": "Meowsy",
          "species" : "cat",
          "foods": {
            "likes": ["tuna", "catnip"]
          }
        },
        {
          "name": "Barky",
          "species" : "dog",
          "foods": {
            "likes": ["bones", "carrots"]
          }
        },
        {
          "name": "Purrpaws",
          "species" : "cat",
          "foods": {
            "likes": ["mice" , "milk"]
          }
        }
      ]   
      

共1个答案

匿名用户

此代码:

 tablebody += '<td class="tabdat">'
              '<ul><li>'  for(j=0 ; j<myobj[i].foods.likes.length; j++)  
                          {
                              myobj[i].foods.likes[j];
                          } '<li></ul>';

需要重新格式化为:

 tablebody += '<td class="tabdat">';
 tablebody += '<ul>';
 for (j=0; j < myobj[i].foods.likes.length; j++)  
 {
     tablebody += '<li>' + myobj[i].foods.likes[j] + '</li>';
 } 
 tablebody += '</ul>';

还有其他方法,例如使用join,但这说明了如何在字符串concat中添加for循环。