js获取表格动态添加行的数据

问题:动态添加table行所定义的id值重复问题

解决思路:定义name代替定义id,循环遍历行数组拿取每行数据

<table id="table">

     <tr><input name="name1" value="a">&nbsp;&nbsp;<input name="name2" value="aa"></tr>

     <tr><input name="name1" value="b">&nbsp;&nbsp;<input name="name2" value="bb"></tr>

</table>

//获取table下的所有tr组成行数组
var trs = $("#table tr");

//获取tr数组长度
var number = trs.length;

//定义数据,组装数据
var testList = new Array();

//循环遍历拿取table的每一行数据
for(var i=0;i<number;i++){
    var tr = trs[i];
    
    //find 搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素。
    
    //获取每一行下面input的name='name1',name='name2'的数据
    var testValue1 = $(tr).find("input[name='name1']").val();

    var testValue2 = $(tr).find("input[name='name2']").val();
    
    //其他html元素数据获取方法一样
    
    //var $(tr).find("input[type='checkbox']").is(':checked')//判断每一行的checkbox是否被选中true/false

    var parms = {
            "testName1": testValue1 ,
            "testName2": testValue2
        };
        
        testList .push(parms);
    
}


//数据组装结果
//每个对象代表该table的每一行数据
testList=[
            {
                "testName1":"a",
                "testName2":"aa",
            },
            {
                "testName1":"b",
                "testName2":"bb",
            }
        ]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整代码如下: HTML: ```html <table id="demo" lay-filter="test"></table> <script type="text/html" id="toolbarDemo"> <div class="layui-btn-container"> <button class="layui-btn layui-btn-sm" lay-event="add">添加</button> </div> </script> ``` JavaScript: ```javascript layui.use('table', function(){ var table = layui.table; //展示已知数据 var data = [{ "id": "10001", "username": "张三", "email": "zs@layui.com", "sex": "男", "city": "浙江杭州", "sign": "人生就像是一场修", "experience": "116", "ip": "192.168.0.8", "logins": "108", "joinTime": "2016-10-14" }, { "id": "10002", "username": "李四", "email": "ls@layui.com", "sex": "女", "city": "浙江温州", "sign": "让天下没有难写的代码", "experience": "12", "ip": "192.168.0.8", "logins": "106", "joinTime": "2016-10-14" }, { "id": "10003", "username": "王五", "email": "ww@layui.com", "sex": "女", "city": "浙江宁波", "sign": "码农,码出高质量", "experience": "65", "ip": "192.168.0.8", "logins": "106", "joinTime": "2016-10-14" }, { "id": "10004", "username": "赵六", "email": "z6@layui.com", "sex": "男", "city": "浙江杭州", "sign": "我爱layui", "experience": "666", "ip": "192.168.0.8", "logins": "106", "joinTime": "2016-10-14" }, { "id": "10005", "username": "周七", "email": "z7@layui.com", "sex": "男", "city": "浙江义乌", "sign": "浩浩荡荡,俱是翻滚的浪花", "experience": "86", "ip": "192.168.0.8", "logins": "106", "joinTime": "2016-10-14" }]; table.render({ elem: '#demo', toolbar: '#toolbarDemo', cols: [[ {type:'checkbox'}, {field:'id', title:'ID', width:80}, {field:'username', title:'用户名', width:120}, {field:'email', title:'邮箱', minWidth:150}, {field:'sign', title:'签名'}, {field:'sex', title:'性别', width:80}, {field:'city', title:'城市'}, {field:'experience', title:'积分', width:80}, {field:'logins', title:'登入次数', width:100}, {field:'joinTime', title:'加入时间', width:120}, {fixed: 'right', title:'操作', toolbar: '#barDemo', width:150} ]], data: data, page: true }); //监听头部工具栏事件 table.on('toolbar(test)', function(obj){ var data = obj.data; switch(obj.event){ case 'add': var tableData = table.cache.demo; var newRow = { "id": "", "username": "", "email": "", "sex": "", "city": "", "sign": "", "experience": "", "ip": "", "logins": "", "joinTime": "" }; tableData.push(newRow); table.reload('demo', { data: tableData }, 'data'); break; }; }); }); ``` 在这个示例中,我们使用 layui 的表格组件,创建了一个包含多个固定和可选操作的表格。我们还添加了一个头部工具栏,包含一个按钮,用于添加新的。 当用户点击添加按钮时,我们使用 table.cache 方法获取当前表格数据,然后创建一个新的空(具有相同的字段),并将其添加表格数据中。最后,我们使用 table.reload 方法重新加载表格,以显示新的。 注意:在实际使用中,您需要根据您的需求更改表格字段和样式,以及添加其他可选操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值