jQuery使用动态ids'添加行到表。

时间:2014-04-24 20:21:16

标签: javascript jquery html

http://jsfiddle.net/waH5S/6/

function add_row_retail() {
            $(document).ready(function () {
                var table = document.getElementById("Retail");
                var row = table.insertRow(-1);
                var row_id = $('#Retail').val('tr[id]:last');
                console.log(row_id);
                var cell_init = row.insertCell(-1);
                cell_init.innerHTML = "blank";
            });
        }

我试图在添加的行之前获取表行(<tr>)的id,然后使用正确的parseint(...)向其中添加1。然后对下一个单元格(<td>)执行相同操作,以便每个单元格对每个表格都有唯一的ID。我似乎无法找到该行的ID。

这是我的问题的“正确”代码

function add_row_retail() {
    var table = document.getElementById("Retail");

    // Row id
    var row_id = $('#Retail tr:last').attr('id');
    var row = table.insertRow(-1);
    var next_row_id = "tr_" + (1+parseInt(row_id.match(/\d+/)[0],10));
    $(row).attr('id', next_row_id);

    for (var i = 0; i < 8; i++) {
        var cell_id = $('#Retail td:last').attr('id');
        console.log(cell_id);
        var next_cell_id = "td_" + (1+parseInt(cell_id.match(/\d+/)[0],10));        console.log(next_cell_id);
        var cell = row.insertCell(-1);
        $(cell).attr('id', next_cell_id);
        $(cell).innerHTML = "blank";
    }
}

1 个答案:

答案 0 :(得分:0)

而不是我认为你想要的$('#Retail').val('tr[id]:last');

var row_id = $('#Retail tr:last').attr('id')

此选择器查找#Retail元素下的最后一个tr,并返回其id属性。

jQuery最后一个选择器:http://api.jquery.com/last-selector/


下一个问题:ID无法以数字开头。将您的ID重命名为&#34; tr_1&#34;,&#34; tr_2&#34;等。


下一个问题:从字符串中提取数字:

"tr_123".match(/\d+/)[0]; // returns 123.

为其添加1:

var next_id = "tr_" + (1+parseInt("tr_123".match(/\d+/)[0],10));

然后,设置您的新ID。

var row = table.insertRow(-1);
...
$(row).attr('id', next_id);