Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JQuery动态创建不同的表_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用JQuery动态创建不同的表

Javascript 使用JQuery动态创建不同的表,javascript,jquery,html,Javascript,Jquery,Html,我正在编写一个代码,在这个代码中,我需要动态创建表。在这里,SO的一位专家帮助我创建了它们,但在这里,我希望分别创建表 现在好像 <table> <tr> <th></th> <th></th> <th></th> </tr> <tr> <td></td> <td></td> <td></td> </

我正在编写一个代码,在这个代码中,我需要动态创建表。在这里,SO的一位专家帮助我创建了它们,但在这里,我希望分别创建表

现在好像

<table>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>

但我想把它当作

  <table>
        <tr>
            <th></th>
            <th></th>
            <th></th>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </table>
    <table>
        <tr>
            <th></th>
            <th></th>
            <th></th>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </table>
    <table>
        <tr>
            <th></th>
            <th></th>
            <th></th>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </table>

这是工作小提琴

请让我知道如何修复此问题

谢谢


var myList=[
[{
“产品”:“红酒”,
“单位:”,
“最大值”:“0.575”,
“规则编号”:“1”,
“成分”:“硫酸盐”,
“id”:“2”
}, {
“产品”:“红酒”,
“单位:”,
“最大值”:“10.25”,
“规则编号”:“1”,
“成分”:“酒精”,
“id”:“1”
}, {
“产品”:“红酒”,
“单位:”,
“最大值”:“98.5”,
“规则编号”:“1”,
“成分”:“总二氧化硫”,
“id”:“3”
}],
[{
“产品”:“红酒”,
“单位:”,
“最大值”:“1.98”,
“规则编号”:“3”,
“成分”:“硫酸盐”,
“id”:“8”
}, {
“产品”:“红酒”,
“单位:”,
“最大值”:“81.5”,
“规则编号”:“3”,
“成分”:“总二氧化硫”,
“id”:“9”
}, {
“产品”:“红酒”,
“单位:”,
“最大值”:“10.25”,
“规则编号”:“3”,
“成分”:“酒精”,
“id”:“7”
}],
[{
“产品”:“红酒”,
“单位:”,
“最大值”:“98.5”,
“规则号”:“2”,
“成分”:“总二氧化硫”,
“id”:“6”
}, {
“产品”:“红酒”,
“单位:”,
“最大值”:“0.575”,
“成分”:“硫酸盐”,
“id”:“5”
}, {
“产品”:“红酒”,
“单位:”,
“最大值”:“10.25”,
“规则号”:“2”,
“成分”:“酒精”,
“id”:“4”
}],
[{
“产品”:“红酒”,
“单位:”,
“最大值”:“1.98”,
“规则号”:“4”,
“成分”:“硫酸盐”,
“id”:“11”
}, {
“产品”:“红酒”,
“单位:”,
“最大值”:“155”,
“规则号”:“4”,
“成分”:“总二氧化硫”,
“id”:“12”
}, {
“产品”:“红酒”,
“单位:”,
“最大值”:“10.25”,
“最小”:“8.5”,
“目标州”:“5”,

“min_运算符”:“用下面的代码替换函数,这将解决您的问题

HTML

<body onLoad="buildHtmlTable()">
   <div id="tables-div"></div>
</body>

JS

function buildHtmlTable() {
   for (var i = 0; i < myList.length; i++) {
       var $table = $('<table id="excelDataTable-'+(i+1)+'"  border="1"></table>');
       $('#tables-div').append($table);
       var columns = addAllColumnHeaders(myList[0], (i+1));

       for (var j = 0; j < myList[i].length; j++) {
           var row$ = $('<tr/>');
           console.log(myList[i][j])
           for (var colIndex = 0; colIndex < columns.length; colIndex++) {

               var cellValue =  myList[i][j][columns[colIndex]];

               if (cellValue == null) {
                   cellValue = "";
               }

               row$.append($('<td/>').html(cellValue));
               $("#excelDataTable-"+(i+1)).append(row$)
           }

       }
      $('#tables-div').append('<br />');
}


function addAllColumnHeaders(myList, table_id) {
    var columnSet = [];
    var headerTr$ = $('<tr/>');

    for (var i = 0; i < myList.length; i++) {
        var rowHash = myList[i];
        for (var key in rowHash) {
            if ($.inArray(key, columnSet) == -1) {
                columnSet.push(key);
                headerTr$.append($('<th/>').html(key));
            }
        }
    }
    $("#excelDataTable"+table_id).append(headerTr$);

    return columnSet;
  }
}
函数buildHtmlTable(){
对于(变量i=0;i');
}
函数addAllColumnHeaders(myList,表id){
var columnSet=[];
var headerTr$=$('');
对于(变量i=0;i
在我看来没问题。问题是什么?只是缩进?在我的实际输出中,所有内容都在一个表中,但这里我想将数据放在4个不同的表中。基本上,您要做的是为列表中的每个项目创建多个表。为此,您应该创建#excelDataTable a,并向其添加必要的数据,就像您所做的那样我没有将tr,th,td添加到@Ashniu123中,而是直接添加到@Ashniu123中。这就是我无法理解的,如何动态生成表id,然后为该表添加数据。希望它能对您有所帮助!
function buildHtmlTable() {
   for (var i = 0; i < myList.length; i++) {
       var $table = $('<table id="excelDataTable-'+(i+1)+'"  border="1"></table>');
       $('#tables-div').append($table);
       var columns = addAllColumnHeaders(myList[0], (i+1));

       for (var j = 0; j < myList[i].length; j++) {
           var row$ = $('<tr/>');
           console.log(myList[i][j])
           for (var colIndex = 0; colIndex < columns.length; colIndex++) {

               var cellValue =  myList[i][j][columns[colIndex]];

               if (cellValue == null) {
                   cellValue = "";
               }

               row$.append($('<td/>').html(cellValue));
               $("#excelDataTable-"+(i+1)).append(row$)
           }

       }
      $('#tables-div').append('<br />');
}


function addAllColumnHeaders(myList, table_id) {
    var columnSet = [];
    var headerTr$ = $('<tr/>');

    for (var i = 0; i < myList.length; i++) {
        var rowHash = myList[i];
        for (var key in rowHash) {
            if ($.inArray(key, columnSet) == -1) {
                columnSet.push(key);
                headerTr$.append($('<th/>').html(key));
            }
        }
    }
    $("#excelDataTable"+table_id).append(headerTr$);

    return columnSet;
  }
}