我编写了以下代码来向我的表中添加自定义列。但我想为这些列中的每个单元格添加一个唯一的ID。格式应为a(列号)(单元格号>) 例如: - 对于第4列: - a41,a42,a43,........ 所以,任何人都可以告诉我如何做到这一点。谢谢!
$(document).ready(function ()
{
var myform = $('#myform'),
iter = 4;
$('#btnAddCol').click(function () {
myform.find('tr').each(function(){
var trow = $(this);
var colName = $("#txtText").val();
if (colName!="")
{
if(trow.index() === 0){
//trow.append('<td>'+iter+'</td>');
$(this).find('td').eq(5).after('<td>'+colName+iter+'</td>');
}else{
//trow.append('<td><input type="text" name="al'+iter+'"/></td>');
$(this).find('td').eq(5).after('<td><input type="text" id="a'+iter+'" name="a'+iter+'"/></td>');
}
}
});
iter += 1;
});
});
答案 0 :(得分:1)
您似乎有修改表格内容的代码(添加单元格),这相当强烈地反对向每个单元格添加id
,或者至少根据其行/列位置添加{1}}在向表中添加单元格时,必须更改。
但是如果你真的想这样做,在修改之后,运行一个嵌套循环并使用传递到id
的索引分配each
,覆盖它们之前的任何id
有过:
myform.find("tr").each(function(row) {
$(this).find("td").each(function(col) {
this.id = "a" + row + col;
});
});
(请注意,这假定没有嵌套表。)
答案 1 :(得分:0)
试试这个
if(trow.index() === 0){
//trow.append('<td>'+iter+'</td>');
$(this).find('td').eq(5).after('<td id="a'+column_no+cell_no+'">'+colName+iter+'</td>');
}else{
//trow.append('<td><input type="text" name="al'+iter+'"/></td>');
$(this).find('td').eq(5).after('<td id="a'+column_no+cell_no+'"><input type="text" id="a'+iter+'" name="a'+iter+'"/></td>');
}
你只需要定义并迭代column_no和cell_no变量
答案 2 :(得分:0)
当所有其他单元格编号一致时(例如使用值为rXcX的data-attribute
),您可以使用以下内容:
function addColumn(){
$('table tr').each(
function(i, row) {
var nwcell = $('<td>'), previdx;
$(row).append(nwcell);
previdx = nwcell.prev('td').attr('data-cellindex');
nwcell.attr('data-cellindex',
previdx.substr(0,previdx.indexOf('c')+1)
+ (+previdx.substr(-previdx.indexOf('c'))+1));
});
}
在此jsFiddle
中完成了工作