如何在具有预定义属性的表中添加新行和列
How to add new rows and column in table with predefined attribute?
我正在尝试使用jQuery添加新的行和列到我的表,但在添加新的行和列时,表的css属性缺失,即表边界不适合新添加的行。下面是我的代码:
//Add new rows
$('#btn3 li a:eq(0)').on('click', function (){
var numcols = $('#tab1 tr:eq(0) td').length;
var row = document.createElement('tr');
//Insert name
var name_td = document.createElement('td');
row.appendChild(name_td);
name_td.appendChild(document.createTextNode(name));
//fill the rest with empty td's
for (var i=1; i < numcols; i++) {
row.appendChild(document.createElement('td'));
}
$('#tab1').append(row);
});
//Add new coloumn
$('#btn3 li a:eq(1)').on("click", function (){
$('#tab1').find('tr').each(function(){
$(this).append('<td></td>');
});
});
Html代码在这里:
<table class="table table-bordered" id="tab1">
<thead class="mbhead">
<tr class="mbrow">
<th></th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
<th>F</th>
<th>G</th>
<th>H</th>
<th>I</th>
<th>J</th>
</tr>
</thead>
<tbody>
<tr>
<td class="crow">1</td>
<td>asd</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>ddd</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="crow">2</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="crow">3</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="crow">4</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
问题是你的tr 0长度为0,因为它是一个头,所以你可能需要:
var numcols = $('#tab1').find('thead th').length;
这里是一个代码示例(重做了一点)http://jsfiddle.net/XdMqD/1/
注意:我没有你所有的布局,所以我创建了几个按钮:$('#btn3').on('click', function () {
var name = "Feidrich";
var numcols = $('#tab1').find('thead th').length;
var row = $('<tr />');
//Insert name
var name_td = '<td >' + name + numcols + '</td>';
row.append(name_td);
//fill the rest with empty td's
for (var i = 1; i < numcols; i++) {
$('<td />').appendTo(row);
}
row.appendTo('#tab1');
});
//Add new coloumn
$('#btn4').on("click", function () {
$('#tab1').find('tr').each(function () {
$(this).append('<td> </td>');
});
});
编辑注:我不知道你的css,所以我使用:
.table-bordered {
border:solid lime 2px;
}
.table-bordered td {
border:solid green 2px;
}
EDIT2:修复列添加-注意我添加了一个空白的标题-你可以看到,你可能会想要其他东西:
$('#btn4').on("click", function () {
$('#tab1').find('tr').eq(0).append('<th> </th>')
var mycontent = $('#tab1').find('tr:not(:eq(0))'); //.not(':eq(0)');
mycontent.each(function () {
$(this).append('<td> </td>');
});
});
更新了这个:http://jsfiddle.net/XdMqD/2/
相关文章:
- 如何在脚本上添加新行
- 在不刷新整个网格的情况下,向Asp.net网格视图添加新行
- dhtmlx添加新行并启动单元格编辑器
- 如何在Google Geochart图表的工具提示文本中添加新行
- 如何在javascript中每次添加新行时都增加ordre值
- 两个表添加新行按钮-冲突
- 在Spring.message属性中添加新行时出错
- 使用Javascript在文本区域中添加新行
- 在java脚本的第一行之前添加新行
- sails.js更新或添加新行
- 使用ajax向表中添加新行
- 使用一些默认值在剑道网格中添加新行
- 添加新行后无法“刷新”灯丝组表锯响应表
- JQuery 数据表添加新行,如果该行已经存在,请将其删除并为该 ID 插入新行
- 续集 - 向表添加新行并关联表
- 如何在 jQuery 函数 text() 中添加新行
- 在表格顶部添加新行
- 添加新行动态引导日期时间选择器不起作用
- 如何在不影响 Jquery 数据表中其他行的情况下删除选定的现有数据并添加新行
- 分机.js确认方法添加新行字符