在JQuery中生成另一个HTML表,以输入要计算的更多小时

我有一个HTML表格,用户输入他们的开始时间和结束时间来计算总时数。 如果总时间在0-4之间,则“待机时间”文本字段将显示值0.5,如果“总共小时数”范围在4-8之间,则“待机时间”将显示1,最后,如果“总小时数”范围在8-12之间,“待机时间”将显示1.5。

现在,这一切都完美无缺。

但我想从那里做的是,每当你点击“添加时间”时,会产生第二个“开始时间,结束时间,总时数和待机时间”表格(我已将它们放在评论中以显示我的内容)想)。

最后,我想添加在整个过程中生成的每个“待机时间”,并将结果放在文本字段中:“待机总小时数”。

此外,每当我输入第一个表的开始时间和结束时间数据时,似乎生成的表(我在评论中手动创建的表)恰好计算我在第一个表中输入的内容。 表的迭代似乎不起作用。

这是我的HTML代码

Time format: 1:00 = 1 PM / 01:00 = 1 AM

Start time End time Hours in total Standby hours
1
<!-- //EXAMPLE OF WHAT HAS TO BE GENERATED
Start time End time Hours in total Standby hours
2
--> Total standby hours 

而我的JQuery

 var numRows = 2, ti = 5; $(function () { function calculate() { var hours = parseInt($(".Time2").val().split(':')[0], 10) - parseInt($(".Time1").val().split(':')[0], 10); if(hours =4) $(".Standby").val("1"); if (hours<=4) $(".Standby").val("0.5"); //if (hours==4 && hours=8 && hours12) $(".Standby").val("1.5"); } $(".Time1,.Time2").change(calculate); calculate(); }); var standby1 = $(this).find('input.Standby').val(); var standby2 = $(this).find('input.Standby').val(); /*var standbytotal = (standby); //CALCULATE THE TOTAL OF STANDBY HOURS THAT APPEAR $(this).find('input.grandtotal').val(standbytotal ? standbytotal : "");*/ 

现在我当然在这里制作了一个JSFiddle: http : //jsfiddle.net/44NCk/508/

感谢大家的帮助!

对于这种情况,我会使用jquery clone函数。 它几乎为你做了一切。

我更新了你的jsfiddle给你一个简单的例子。

基本上这个:

  window.addTime = function () { $('#timeTable').clone().attr('id', "timeTable2").appendTo('#table'); }; 

您必须确保attr函数中的id不同。 递增一个数字并将其添加到timeTable id将起作用。

有关详细信息,请参阅此链接 。

可能重复是否有使用javascript生成html的最佳实践

你只需要创建.append方法,这在上面的答案中解释。

希望它能帮到你!

当我动态生成表时,我经常发现以下技巧很有用:

 

然后使用javascript将表插入div。

 first_cell_content=""; table_html = ""+ ""+ "" ""+ "
"+first_cell_content+"
"; document.getElementById("table_div").innerHTML = table_html;