使用JQuery创建表结构

时间:2009-07-31 11:21:42

标签: jquery

在我的应用程序中,有一个视图页面显示属性名称表作为标题,其值由下面的许多人填充。 像

Name Age salary
  a   22  18912
  b   23   89972
  c   23    781273

我想要它像上面..
但我得到它

Name Age Salary
 a   22  18912  b 23 89972 23 781273

我正在使用JQuery从我的Mysql表和Cakephp控制器代码中检索这些值来查看它..

<head>
  <script type="text/javascript">
    $(document).ready(function(){
      var ht = $.ajax({
        type: "GET",
        url: "http://localhost/FormBuilder/index.php/admins/viewEntries/"+formid,
        async: false
      }).responseText;
      var myObject = eval('(' + ht + ')');
      var data = myObject;var last;
      $.map(data.labels, function(i){
        last=i.label;
        $("<th>"+i.label+"</th> ").appendTo("#headers");
      return i.label;});

      var htm = $.ajax({
        type: "GET",
        url: "http://localhost/FormBuilder/index.php/admins/viewResults/"+formid,
        async: false
      }).responseText;
      var myObject1 = eval('(' + htm + ')');
      var data1 = myObject1;
      $.map(data1.values, function(i){
        $("<td>"+i.value+"</td> ").appendTo("#body");
        if(last==i.label){
          // where i thought to create a new row for 2 row
        }
      return i.value;});
    });
  </script>
</head>
</body>
  <table class="entries" cellspacing="0" cellpadding="3" border="1">
    <tr id="headers"></tr>
    <tr id="body"></tr>
  </table>
</body>

如何创建一个新行来显示新行中的第2行和第3行值。请建议我.....

2 个答案:

答案 0 :(得分:1)

要创建新行,请使用

$('table.entries').append('<tr></tr>');

您可能希望在添加之前为整行创建HTML,因为它会更快。

答案 1 :(得分:1)

看看你的代码,有几件事让我感到震惊:

标题后面有一个结束标记。但是,请考虑将JS放在单独的文件中。在最终结束体标记上方添加脚本引用(最好尽可能将它们添加到页面底部)

您正在使用eval()。我猜htm变量是JSON?您可以考虑使用JSON.org提供的json2.js中的JSON.parse()。

看看这篇文章是否会让你感到震惊。 Why is using the JavaScript eval function a bad idea?

否则,上述答案应该足够了。你可以给表一个ID,因为这个选择器是最快的。

使用这样的附加功能,最好在循环中构造所有html,然后在一个操作中进行追加。