动态添加td和tr onLlick HTML JQUERY

时间:2014-06-01 23:09:17

标签: javascript jquery html

我有一个有一行和两个TD的表

<table id="tbTest">
    <tr>
        <td>
            <input type="text">
        </td>
        <td>
            <input type="text">
        </td>
    </tr>
</table>

我还有一个按钮,可以动态添加带有td的新行。如果第二次点击我想添加第二个td。如果第三次点击我想添加一个新的tr与一个td ...等

单击

上的jquery
var counter = 2;

if ((counter % 2) == 0) {
    row = $('<tr><td><input type="text"/></td></tr>');
}
else {
    //???????????????
}
row.appendTo('#tbTest');
counter++;

我可以添加一个tr和td(第一次点击),但第二次点击如何在tr ...建议中插入第二个td?

感谢,

3 个答案:

答案 0 :(得分:2)

从你的问题来看,我想你要实现的是在首次点击按钮时添加一个包含表数据的新行,每隔一个奇数时间(第三次,第五次等)添加一个新的表数据第二次单击按钮时创建的行,每隔一次偶数时间(第四次,第六次等)

var counter = 0,
    row;

$('button').click(function() {
  counter++; //increase value of counter

//for every odd time click
if (counter % 2 != 0) {
    row = $('<tr><td><input type="text"></td></tr>'); //create row
    $('#tbTest').append(row);
}
else {
    //create a table data
    var tableData = $('<td><input type="text"></td>');
    row.append(tableData); //append the table data to the last created row
}
});

这是一个工作小提琴:http://jsfiddle.net/976PT/

答案 1 :(得分:1)

这样的事情会起作用:

var container = $('#tbTest tr:last');
if(container.find('td').length > 1)
{
    $('#tbTest').append('<tr></tr>');
     container = $('#tbTest tr:last');
}
$(container).append('<td><input type="text"/></td>');

我不确定此代码是否100%正确,但基本上您需要检查上一个tr元素是否包含多个td,如果是,请创建一个新的。

答案 2 :(得分:0)

$(document).ready(function ($) {
    var i = 0;
    $("button").click(function () {
        if (i % 2 != 0) {
            row = $('<td><input type="text"/></td>');
            row.appendTo('#tbTest tr:last-child');
        } else {
            row = $('<tr><td><input type="text"/></td></tr>');
            row.appendTo('#tbTest');
        }
        i++
    })
})

这是一个小提琴:http://jsfiddle.net/aK73x/5/