Javascript / jQuery:如何动态地向表体添加行(使用数组)
我是Javascript的新手,希望有人可以帮助我。
我有一个带有表格的HTML页面,并希望使用JS动态地将具有特定内容的行添加到表格的主体中 。
到目前为止,我有以下代码在这里缩短(实际上有更多的行和列等),这导致我以下问题:
- 当我运行它时,它会在表格上方而不是在表格的主体内部插入动态HTML。
- 它不应用任何样式(由我的CSS中的类定义),因此它只显示单元格的内容而不应用边框或列宽样式等。我必须告诉它它必须应用CSS这样的风格?
- 另外,我想知道是否有一种方法,在第一个变量中我不必单独列出所有数字,而只是写一个系列的第一个(1)和最后一个(5),因为它们只是简单的序列1,2,3,4,5。
谁能告诉我这里我做错了什么?
我的JS:
$('#btnStart').on('click', function(){ var cols = [1, 2, 3, 4, 5]; var tbody = ''; var i; for (i = 0; i < cols.length; i++) { tbody += cols[i] + " \ 1 \ 2 \ \ "; } $('#bodyCal').html(tbody); });
我的HTML:
Col 1
你应该定位tbody
所以给它分配ID。 另请注意div
不能是tbody
的孩子
允许的内容:零个或多个
元素。
相关的HTML更改:
对于第三个问题:
var tbody = ''; for (var i = 1; i <= 5; i++) { tbody += " " + i +" \ 2 \ \ "; } $('#bodyCal').html(tbody);
DEMO
对于你的第3个问题:
var cols = [1, 5]; for (i = cols[0]; i <= cols[1]; i++) {
现在你的for循环将以i值为1,2,3,4和5运行。
你可以进一步简化它:
for(i = 1; i <= 5; i ++){
但是这消除了传递开始和结束参数的可能性,因此在测试不同范围时不那么实用。
您必须将“bodyCal”id放在table body标签旁边,因为表不能包含div,除非它包含在td标记中。 试试这个:
$('#btnStart').on('click', function(){ var cols = [1, 2, 3, 4, 5]; var tbody = ""; var i; for (h = 0; h < 5; h++) { tbody += "\ "; for (i = 0; i < cols.length; i++) { tbody += "" + cols[i] + " \ "; } tbody += "<\tr>\ "; } $('#bodyCal').html(tbody); });
Col 1