jQuery为每个循环创建一个表

时间:2018-08-22 14:25:07

标签: jquery loops

如何在第一个循环$.each(data, function (i, dataitem) {}中创建一个表并在其中插入第二个循环($.each(dataitem, function (i, item) {})。

if ($.trim(data)) {
    $.each(data, function (i, dataitem) {
        $.each(dataitem, function (i, item) {
            var $tr = $('<tr>').prepend(
                    $('<td>').text(item.productstore.products.name),
                    $('<td>').text(item.quantity);
            ).prependTo('#output');
        });
    });
}

HTML:

<div id="output"></div>

现在它仅输出:

<div id="output">
    <tr><td>product</td><td>qty</td></tr>
    <tr><td>product2</td><td>qty2</td></tr>
</div>

我不知道如何将其包装在<table></table>

2 个答案:

答案 0 :(得分:0)

您可以使用jQuery构造函数动态构建DOM元素。就像您在使用$('')一样。只需对表执行相同操作即可。请尝试以下。

Cast

答案 1 :(得分:0)

//prepend all the tables after they have been created so there is a single
//change to the DOM
$('#output').prepend($.map(data, function(dataitem, i) {
  //return a table with all the rows appended to it
  return $('<table>').append($.map(dataitem, function(item, i) {
    //return a row with both the cells appended to it
    return $('<tr>').prepend(
      $('<td>').text(item.productstore.products.name),
      $('<td>').text(item.quantity);
    );
  }));
}));