2016-06-24 37 views
0

我正在编写一个读取JSON数据的代码,然后使用appendTo创建一个表。我试图将属性“href”应用于<td>表字段。我尝试了多种方式,但我无法在生成的html代码中看到href。如何使用Jquery应用属性“appendTo”

我想在生成的代码是这样的:

<td><a href="#"> key1</a></td 

什么会产生这种代码的最好方法?

http://jsfiddle.net/charles30hk/b3cqtnur/

var data = {"key1":{"key11":"value11", 
        "key12":"value12"}, 
      "key2":"value2", 
      "key3":"value3", 
      "key4":"value3", 
      "key5":{"key51":"value11", 
        "key52":"value12", 
        "key53":{"key531":"value","key52":"value12"}, 
        }, 
      }; 
function loop(obj, ul,nested=0) { 
    $.each(obj, function(key, val) { 
     if($.isPlainObject(val)) { 
      //$("<tr>").appendTo(ul) 
      for (i=0;i<nested;i++) { 
       $("<td>").append().appendTo(ul) 
      } 
      $("<td class=link>").text(key).appendTo(ul) 
      //$("td").last().attr("href","#") 

      /*var ul2 = $("<td>").text("hello").appendTo(
       $("<tr>").appendTo(ul) 
      ); */ 
      //var u12 = $("<tr>").appendTo(ul) 
      if (i==0){ 
       $("<tr class=parent>").appendTo(ul) 
      } else{ 
      $("<tr>").appendTo(ul) 
      } 

      //$("<td>").appendTo(ul) 
      loop(val, ul,nested+1); 
     } else { 
      //$("<tr>").appendTo(ul) 
      for (i=0;i<nested;i++) { 
       $("<td>").appendTo(ul) 
      } 
      $("<td>").text(key).appendTo(ul) 
      //ul+="<td>"+key+"</td>" 
      $("<td>", { 
       id: key 
      }).text(val).appendTo(ul); 
      if (i==0){ 
       $("<tr class=parent>").appendTo(ul) 
      } else{ 
      $("<tr>").appendTo(ul) 
      } 
     } 
    }); 
} 


$(function(){ 
$("#products").on("click","a",function(e) { 
    e.preventDefault(); 
    $(this).closest("tr").nextUntil(".parent").toggleClass("open"); 
}); 
}); 

回答

0

尝试申请表格单元格内的链接在适当情况下,通过改变仅此行

$("<td class=link>").text(key).appendTo(ul); 

与此

$("<td class=link>").html("<a href=\"#\">"+key+"</a>").appendTo(ul); 

更新fiddle