在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;