如何将表头添加到使用 jQuery 中的 getJSON() 函数创建的 html 表中

Posted

技术标签:

【中文标题】如何将表头添加到使用 jQuery 中的 getJSON() 函数创建的 html 表中【英文标题】:How can I prepend table headers to html table that was created using getJSON() function in jQuery 【发布时间】:2014-11-28 23:10:08 【问题描述】:

我不知道如何将以下 html 代码添加到我使用 jQuery 中的 getJSON 方法生成的 HTML 表中。

这是小提琴:http://jsfiddle.net/point71echo/uno9bfds/1/

要添加的HTML:

<thead>
    <tr>
        <th>Foundation</th><th>Name</th><th>Title</th><th>Department</th><th>Email</th><th>Office Phone</th><th>Cell</th><th>Fax</th><th>Board Title</th><th>Url</th><th>Foundation Type</th>
    </tr>
</thead>

当前使用的代码:

<script type="text/javascript">
$.getJSON( "https://spreadsheets.google.com/feeds/list/1bDcIQjGZ6-gZVoUL-4apB0O1A-VDaEP8gLQbOUwJLuE/od6/public/values?alt=json-in-script&callback=?", function( data ) 
  var items = [];
  $.each( data.feed.entry, function( i, entry ) 

  var logourl = entry.gsx$logourl.$t;
  var foundation = entry.gsx$foundation.$t;
  var name = entry.gsx$name.$t;
  var title = entry.gsx$title.$t;
  var department = entry.gsx$department.$t;
  var email = entry.gsx$email.$t;
  var officephone = entry.gsx$officephone.$t;
  var cell = entry.gsx$cell.$t;
  var fax = entry.gsx$fax.$t;
  var boardtitle = entry.gsx$boardtitle.$t;
  var url = entry.gsx$url.$t;
  var foundationtype = entry.gsx$foundationtype.$t;

  if(foundationtype == "Family Foundation")
    catlink = "<a href='/foundations/family-foundations/'> Family Foundation</a>";
  
  else if(foundationtype == "Community Foundation")
    catlink = "<a href='/foundations/community-foundations/'> Community Foundation</a>";
  

  if (email.match(/mailto:.*/)) 
      var visibleEmail = email.substring(7);
      var newEmail = '<a href="' + email + '">' + visibleEmail + '</a>';
  
  else if(email.match(/[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]*(\.[a-z]2,3)/i))
    var newEmail = '<a href="mailto:' + email + '">' + email + '</a>';
  
  else
    var newEmail = 'No Email found';
  

      //items.push("<table><tr><td>"+url+"</td></tr>");

      //items.push("test");
      items.push("<tr class='rows tablerow "+foundationtype+"2'>");
      items.push("<td style='word-wrap:break-word'>" + foundation + "</td>");
      items.push("<td style='word-wrap:break-word'>" + name + "</td>");
      items.push("<td style='word-wrap:break-word'>" + title + "</td>");
      items.push("<td style='word-wrap:break-word'>" + department + "</td>");
      items.push("<td style='word-wrap:break-word'>" + newEmail + "</td>");
      items.push("<td style='word-wrap:break-word'>" + officephone + "</td>");
      items.push("<td style='word-wrap:break-word'>" + cell + "</td>");
      items.push("<td style='word-wrap:break-word'>" + fax + "</td>");
      items.push("<td style='word-wrap:break-word'>" + boardtitle + "</td>");
      items.push("<td style='word-wrap:break-word'>" + url + "</td>");
      items.push("<td style='word-wrap:break-word'>" + foundationtype + "</td></tr>");
  );

  $( "<table/>", 
    "class": "sortable tableData",
    html: items.join( "" )
  ).appendTo( "#list-view" );
);

</script>

    <div id="list-view"></div> 

我的目标是在开始的 Table 标记之后直接获取 Thead 部分。像这样……

<table class="sortable tableData">
<thead>
    <tr>
        <th>Foundation</th>
        <th>Name</th>
        <th>Title</th>
        <th>Department</th>
        <th>Email</th>
        <th>Office Phone</th>
        <th>Cell</th>
        <th>Fax</th>
        <th>Board Title</th>
        <th>Url</th>
        <th>Foundation Type</th>
    </tr>
</thead>
<tbody>...</tbody>
</table>

【问题讨论】:

为什么不将&lt;thead&gt;, etc., etc. &lt;/thead&gt; 设为items 数组中的第一项(作为字符串)? 【参考方案1】:

你在找这个吗?

    $("<table/>", 
        "class": "sortable tableData",
        html: items.join("")
    ).appendTo("#list-view");

    $("table").prepend("<thead> <tr>  <th>Foundation</th><th>Name</th><th>Title</th><th>Department</th><th>Email</th><th>Office Phone</th><th>Cell</th><th>Fax</th><th>Board Title</th><th>Url</th><th>Foundation Type</th> </tr></thead>");

更新 jsfiddle:http://jsfiddle.net/uno9bfds/2/

【讨论】:

我非常接近这一点,但从未完全正确。感谢您提供这个易于实施的解决方案。

以上是关于如何将表头添加到使用 jQuery 中的 getJSON() 函数创建的 html 表中的主要内容,如果未能解决你的问题,请参考以下文章

jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表

添加表头行会禁用 jQuery 选择器

如何使用jQuery将Class添加到表内每个tr中的第一个td

如何将图像标题添加到 jQuery ImageViewer 插件中的活动项?

bash给csv文件添加一个表头

powerquery追加查询如何将导入数据表头不显示null