jQuery Jquery动态表创建?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/17440239/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 19:04:25  来源:igfitidea点击:

Jquery Dynamic table create?

jqueryhtml

提问by user2424382

How to create Dynamic table using JQuery I created with .append but problem is when i am clicking on again so create anther table but i want add in to a same table so how can i do that please help me.

如何使用我用 .append 创建的 JQuery 创建动态表,但问题是当我再次单击时创建另一个表,但我想添加到同一个表中,所以我该怎么做,请帮助我。

$(function () {
    $("#addProduct").click(function () {
        var table = $('<table></table>').addClass('foo');
        for (i = 0; i < 10; i++) {
            var row = $('<tr></tr>');
            for (i = 0; i < 10; i++) {
                var row1 = $('<td></td>').addClass('bar').text('result ' + i);
                table.append(row);
                row.append(row1);
            }
        }
        $('#someContainer').append(table);
    });
});

This is HTML

这是 HTML

<button id="addProduct">Add Product</button>

<div id="someContainer"></div>

回答by Olrac

Try my answer

试试我的回答

$(function () {
    $("#addProduct").click(function () {
          var table = $('<table></table>').addClass('foo');
        for (var i = 0; i < 10; i++) {
                row = $('<tr></tr>');
                for (var j = 0; j < 10; j++) {
                    var rowData = $('<td></td>').addClass('bar').text('result ' + j);
                    row.append(rowData);
                }
                table.append(row);
            }

        if ($('table').length) {
             $("#someContainer tr:first").after(row);
        }
        else {
            $('#someContainer').append(table);
        }
    });
});

回答by IT ppl

try this

尝试这个

$(function() {  
    $("#addProduct").click(function() {
        if($('#someContainer table').length > 0)
        {
            var row = $('<tr></tr>');
            for(i=0; i<10; i++){
                var row1 = $('<td></td>').addClass('bar').text('result ' + i);
                row.append(row1);
            }
            $('#someContainer table').append(row);
        }
        else
        {
            var table = $('<table></table>').addClass('foo');
            for(i=0; i<10; i++){
                var row = $('<tr></tr>');
                for(i=0; i<10; i++){
                    var row1 = $('<td></td>').addClass('bar').text('result ' + i);
                    table.append(row);
                    row.append(row1);
                }
            }
            $('#someContainer').append(table);
        }
    });
});

live demohere.

现场演示在这里。

回答by muneebShabbir

$(function () {
    $("#addProduct").click(function () {
    var table
    if($('#someContainer').find("table").length > 0){
          table =$('#someContainer').find("table");
    }else{
          table = $('<table></table>').addClass('foo');
    }

        for (i = 0; i < 10; i++) {
            var row = $('<tr></tr>');
            for (i = 0; i < 10; i++) {
                var row1 = $('<td></td>').addClass('bar').text('result ' + i);
                table.append(row);
                row.append(row1);
            }
        }
        $('#someContainer').append(table);
    });
});

try this one DEMO

试试这个DEMO

回答by ryosuke-hujisawa

<html>
 <head>
  </head>
   <body>
    <table id="game_table" border="1"></table>
     <script language="JavaScript">

gt = document.getElementById('game_table'),
 i = 0, 
  frag = document.createDocumentFragment(),
   tr = document.createElement('tr'),
    td = document.createElement('td');

while (i<10) {
 var _tr = tr.cloneNode(),
  j = 0;
   while (j<10) {
    _tr.appendChild(td.cloneNode());
     var min = 1 ;
      var max = 3 ;
       var a = Math.floor( Math.random() * (max + 1 - min) ) + min ;

var temp = document.createElement('div');
 temp.innerHTML = "str";
  _tr.appendChild(temp.firstChild);
    j++;
     }

frag.appendChild(_tr);
 i++;
  }
   gt.appendChild(frag);

  </script>
 </body>
</html>

回答by Omar

based on @Olrac's answer

基于@Olrac的回答

var tableBody = $('<table></table>').append($("<tbody>"));
$.each(dbRecords,function(index,record){
  row = $('<tr></tr>');
  $.each(record,function(i,cellValue){
    var rowData = $('<td></td>').text(cellValue);
    row.append(rowData);
  });
  tableBody.append(row);
});

$('#contentDiv').append(tableBody);

this worked very nice

这很好用

output

输出

<table>
  <tbody>
    <tr>
      <td>name</td>
      <td>age</td>
      <td>email</td>
      <td>data</td>
    </tr>
    <tr>
      <td>omar</td>
      <td>26</td>
      <td>[email protected]</td>
      <td>123</td>
    </tr>
    <tr>
      <td>ali</td>
      <td>22</td>
      <td>[email protected]</td>
      <td>456</td>
    </tr>
  </tbody>
</table>

回答by Praveen

If you want to execute it for only once try using .one()in jQuery.

如果您只想执行一次,请尝试在 jQuery 中使用.one()

$(function () {
    $("#addProduct").one("click", function () {

        var table = $('<table></table>').addClass('foo');
        for (i = 0; i < 10; i++) {
            var row = $('<tr></tr>');
            for (i = 0; i < 10; i++) {
                var row1 = $('<td></td>').addClass('bar').text('result ' + i);
                table.append(row);
                row.append(row1);
            }
        }
        $('#someContainer').append(table);
    });
});

Check JSFiddle.

检查JSFiddle