我有一张桌子,当我点击按钮时,我正在创建tr。和td。这非常有效,除了我需要能够将id添加到那些tr并使它们自动递增。
我的完整代码看起来像这样
$("#moreRows").click(function () {
var rowCount = $('table tr').length -1;
if(rowCount >= 100)
{
alert('you have 100 rows');
}else{
$("#correctionTable").each(function () {
var tds = '<tr>';
jQuery.each($('tr:last td', this), function () {
tds += '<td>' + $(this).html() + '</td>';
});
tds += '</tr>';
if ($('tbody', this).length > 0) {
$('tbody', this).append(tds);
$('tbody', this).append(tds);
$('tbody', this).append(tds);
$('tbody', this).append(tds);
$('tbody', this).append(tds);
} else {
$(this).append(tds);
}
});
}
return false;
});
到目前为止,我尝试过这样的事情(不是我知道的完整的每个功能,只是一个例子)
var num = 5;
$("#correctionTable").each(function () {
var id = num++;
var tds = '<tr id="'+id+'">';
尝试将id添加到每个循环中的原始tr。这只是为每个tr添加了6的id。
我也试过这个
var num = 5;
$("#correctionTable").each(function () {
tds = '<tr id="' + (++num) + '">';
和这个
var num = 5;
$("#correctionTable").each(function () {
++num
tds = '<tr id="' + num + '">';
但两项都没有效果
我也尝试在.each函数中移动该函数,它将td附加到最后一个tr,但它不喜欢我向变量添加任何内容或将该变量替换为其他任何内容。
任何帮助都会很棒,我只是被卡住了!
表明我并不疯狂的jsFiddle http://jsfiddle.net/bwHnq/33/
答案 0 :(得分:0)
你永远不会实际增加num的全局值。试试这个:
var num = 5;
$("#correctionTable").each(function () {
num++;
tds = '<tr id="' + num + '">';
Matheus也提供了可行的解决方案。 .length()方法将返回DOM中存在的TD数量。您可以使用每个语句的内部。每次循环发生时,它都会添加一个新的TD,从而增加.length()返回的数字。
希望它有所帮助!
答案 1 :(得分:0)
或
var num = 5;
$("#correctionTable").each(function () {
tds = '<tr id="' + (++num) + '">';
答案 2 :(得分:0)
不使用ID,您可以将事件委托给TABLE级别:
$("#correctionTable").on('click','tr',function(e){
//e.target is the clicked row
console.log(e.target); //$(e.target) to wrap it inside jQuery
});