微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery如何获取数据表行的数据ID值?

如何解决jquery如何获取数据表行的数据ID值?

我正在处理 jquery datatable。我正在将用户输入数据添加到行中。

$('.add-row').on('click',function() {
            
            name = $('#name').val();
            email = $('#email').val();
            cno = $('#cno').val();
            bdy = $('#bday').val();
            t.row.add([
                name,email,cno,bdy,'<button class ="btn btn-danger del">Delete</button>' + '' + '<button class="btn btn-warning upd" data-id="'+$('#example').DataTable().rows().count()+'">Edit</button>'
            ]).draw(false);
            $("#name").val('');
            $("#email").val('');
            $("#cno").val('');
            $("#bday").val('');

        });

在上面的代码中,我在 data-id添加了行数。现在我也在删除该行。

 $("body").on("click",".del",function() {

            if ($(row).hasClass('child')) {
                t.row($(row).prev('tr')).remove().draw();
            } else {
                t.row($(this).parents('tr')).remove().draw();
            }
        });

删除行后。行数为 n-1。每当我尝试添加新行时,我都想获得最新的 data-id 值。例如,我添加了 3 行,行数为 3,因此 data-id 将为 3。所以我想获得 data-id

的最后/最新值

任何帮助将不胜感激?

解决方法

更新

我搜索了最大的 data-id ,所以没有重复的问题

正如@FilipKováč 所建议的,如果您确定最后一行始终具有最大 id,您可以尝试:var max = parseInt($("button.upd").last().data("id") || 0); 而不是我的地图行..它的性能更好

$('.add-row').on('click',function() {
            var values = $.map($("button.upd"),function(el,index) { return parseInt($(el).attr("data-id")); });
            var max = Math.max.apply(null,values.length == 0 ? [0] : values);

            name = $('#name').val();
            email = $('#email').val();
            cno = $('#cno').val();
            bdy = $('#bday').val();
            t.row.add([
                name,email,cno,bdy,'<button class ="btn btn-danger del">Delete</button>' + '' + '<button class="btn btn-warning upd" data-id="'+ (max + 1) +'">Edit</button>'
            ]).draw(false);
            $("#name").val('');
            $("#email").val('');
            $("#cno").val('');
            $("#bday").val('');

        });

 $("body").on("click",".del",function() {
            if ($(row).hasClass('child')) {
                t.row($(row).prev('tr')).remove().draw();
            } else {
                t.row($(this).parents('tr')).remove().draw();
            }
        });

如果你想重新索引 data-id:

$("button.upd").each(function(index){
  $(this).attr("data-id",index);
}

您在删除函数中执行此操作..并将初始代码保留在添加函数中

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。