要在Javascript中实现表格新增行功能,且添加元素,增删操作

起始表格元素:

 <!-- table>(thead>tr>th*6)+(tbody>tr>td*6) -->
    <div class="container">
        <table id="myTable">
            <caption>
                <h3>员工信息管理系统</h3>
            </caption>
            <thead>
                <tr>
                    <th>全选 <input type="checkbox" id="allSelectCheckbox"></th>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>性别</th>
                    <th>电话</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody id="tbodyId">
                <tr>
                    <td><input type="checkbox"></td>
                    <td>aa</td>
                    <td>19</td>
                    <td>male</td>
                    <td>110</td>
                    <td><input type="button" value="删除" onclick="delRow(this)"></td>
                </tr>
                <tr>
                    <td><input type="checkbox"></td>
                    <td>bb</td>
                    <td>20</td>
                    <td>male</td>
                    <td>110</td>
                    <td><input type="button" value="删除" onclick="delRow(this)"></td>
                </tr>
                <tr>
                    <td><input type="checkbox"></td>
                    <td>cc</td>
                    <td>19</td>
                    <td>female</td>
                    <td>119</td>
                    <td><input type="button" value="删除" onclick="delRow(this)"></td>
                </tr>
            </tbody>
            <tfoot id="tfootId">
                <tr>
                    <td><input type="button" value="多选删除" onclick="delAll()"></td>
                    <td colspan="2" class="btn-right" onclick="delFirst()"><button>删除第一个</button></td>
                    <td colspan="2" onclick="delLast()"><button >删除最后一个</button></td>
                    <td></td>
                </tr>
            </tfoot>
        </table>
        <hr>
        <form>
            姓名:<input type="text" id="name" value=""> <br>
            年龄:<input type="text" id="age"> <br>
            性别:<input type="radio" name="sex" value="male" checked>男
            <input type="radio" name="sex" value="female">女<br>
            电话:<input type="text" id="phone"><br>
            <input type="button" value="添加" onclick="addCustom()">
            <input type="reset" value="重置">
            
        </form>
    </div>
  1. 获取表格元素。

  2. 创建一个新的表格行(<tr>)元素。

  3. 根据需要创建表格单元格(<td>)元素,并将它们添加到新创建的表格行中。

  4. 将新创建的表格行添加到表格中。

函数:insertRow(args) 是一个用于在 HTML 表格中插入新行的方法。它args接受一个参数,表示要插入新行的索引位置。如果参数为负数,则新行将插入到表格的末尾。

例子:insertRow(-1) 则新行将插入到表格的末尾。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表格新增行示例</title>
</head>
<body>
    <table id="myTable" border="1">
        <tr>
            <td>行1,列1</td>
            <td>行1,列2</td>
        </tr>
    </table>
    <button onclick="addRow()">添加行</button>
    <script>
        function addRow() {
            // 获取表格元素
            var table = document.getElementById("myTable");

            // 创建一个新的表格行
            var newRow = table.insertRow(-1);

            // 创建表格单元格并添加到新行中
            var cell1 = newRow.insertCell(0);
            var cell2 = newRow.insertCell(1);

            // 设置单元格内容
            cell1.innerHTML = "新行,列1";
            cell2.innerHTML = "新行,列2";
        }
    </script>
</body>
</html>
在添加到新行中创建的新的表格单元格,并添加内容:
		   // 在倒数第二行插入新行
            var newRow = foot.insertRow(rowCount - 1);
            //创建表格单元格并添加到新行中
            var cell1 = newRow.insertCell(0);
            var cell2 = newRow.insertCell(1);
            var cell3 = newRow.insertCell(2);
            var cell4 = newRow.insertCell(3);
            var cell5 = newRow.insertCell(4);
            var cell6 = newRow.insertCell(5);
		 //设置单元格内容
            cell1.innerHTML = '<input type="checkbox">';
            cell2.innerHTML = nameValue;
            cell3.innerHTML = ageValue;
            cell4.innerHTML = sexValue;
            cell5.innerHTML = phoneValue;
            cell6.innerHTML = '<input type="button" value="删除" onclick="delRow(this)">';
实时判断复选框是否被选中,使用监听的方法(否则每次只能在起始的时候判断一次):
// 获取复选框元素
var checkbox = document.getElementById("myCheckbox");

// 为复选框添加事件监听器
checkbox.addEventListener("change", function() {
  // 判断复选框是否被选中
  if (this.checked) {
    // 复选框被选中时执行的方法
    checkedMethod();
  } else {
    // 复选框未被选中时执行的方法
    uncheckedMethod();
  }
});

function checkedMethod() {
  console.log("复选框被选中");
}

function uncheckedMethod() {
  console.log("复选框未被选中");
}
如何获取表格行数,并插入到指定的表格位置:
// 获取表格元素
var table = document.getElementById("myTable");

// 获取表格的行数
var rowCount = table.rows.length;

// 在倒数第一行插入新行
var newRow = table.insertRow(rowCount);
//var newRow = table.insertRow(-1);

// 在新行中插入单元格并设置内容
var cell1 = newRow.insertCell(0);
cell1.innerHTML = "新行,列1";
var cell2 = newRow.insertCell(1);
cell2.innerHTML = "新行,列2";
如何获取单选框选中的value值:
<body>
    性别:<label><input type="radio" name="sex" value="male">男</label>
    <label><input type="radio" name="sex" value="female">女</label><br>
    <button onclick="onPrint()">打印</button>
    <script>
       function onPrint(){
        var sex = document.getElementsByName("sex");
        for (var i = 0; i < sex.length; i++) {
            if (sex[i].checked) {
                console.log(sex[i].value);;
                break;
            }
        }
       }
    </script>
</body>
可以使用以下代码实现表格全选按钮后,选中所有行并删除:

函数:table.deleteRow(args); 是删除表格的某一行;

// 获取表格元素
var table = document.getElementById("myTable");

// 遍历表格的每一行
for (var i = 0; i < table.rows.length; i++) {
    // 将每一行的选中状态设置为true
    table.rows[i].cells[0].firstChild.checked = true;
}

// 删除选中的行
for (var i = table.rows.length - 1; i >= 0; i--) {
    if (table.rows[i].cells[0].firstChild.checked) {
        table.deleteRow(i);
    }
}
在表格中每一行都有Button控件,为其绑定一个函数,当点击该按钮的时候,删除按钮所在行
<table id="myTable">
  <tr>
    <td>1</td>
    <td>2</td>
    <td><button onclick="deleteRow(this)">删除</button></td>
  </tr>
  <tr>
    <td>3</td>
    <td>4</td>
    <td><button onclick="deleteRow(this)">删除</button></td>
  </tr>
  <tr>
    <td>5</td>
    <td>6</td>
    <td><button onclick="deleteRow(this)">删除</button></td>
  </tr>
</table>
<script>
function deleteRow(row) {
  var table = document.getElementById("myTable");
  var rowIndex = row.parentNode.parentNode.rowIndex;
  table.deleteRow(rowIndex);
}
</script>

 实现效果如下:

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我理解您的要求了。对于您的问题,可以采用以下代码来实现: ```javascript // 定义数据 var data = [ {id: 1, name: '张三', age: 18}, {id: 2, name: '李四', age: 20}, {id: 3, name: '王五', age: 22}, ] // 创建表格 layui.use('table', function(){ var table = layui.table; // 渲染表格 table.render({ elem: '#demo', // 指定元素 data: data, // 指定数据 toolbar: '#toolbarDemo', // 指定工具栏 page: true, // 开启分页 limit: 10, // 每页显示的条数 limits: [10, 20, 30], // 每页显示的条数选择项 cols: [ // 指定表头 {type: 'numbers', title: '序号'}, {field: 'id', title: 'ID'}, {field: 'name', title: '姓名'}, {field: 'age', title: '年龄'}, {fixed: 'right', title: '操作', toolbar: '#barDemo', width: 100}, ] }); // 监听工具栏新增按钮 table.on('toolbar(test)', function(obj){ if(obj.event === 'add'){ // 获取表格最后一行的数据 var lastData = table.cache.demo[table.cache.demo.length-1]; // 获取新增的序号 var id = parseInt(lastData.id) + 1; // 手动添加一条数据 table.addRow('#demo', {id: id, name: '', age: null}); } }); // 监听工具栏删除按钮 table.on('tool(test)', function(obj){ if(obj.event === 'delete'){ // 删除该数据 table.deleteRow('#'+obj.tr.attr('data-index')); } }); }); ``` 在上面的代码,我们使用了 layui 的 table 组件来创建表格,并通过 toolbar 参数指定了新增按钮的位置和样式。同时,在表格的最后一列,我们还添加了一个列操作列,用于实现删除功能。 注意,在监听工具栏新增按钮的代码块,我们手动获取了最后一行的数据,并计算出新的序号。这是因为 layui 的 table 组件没有提供自动为数据添加序号的功能,所以我们需要手动实现。同样地,在监听工具栏删除按钮的代码块,我们需要手动获取该的索引并删除对应的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值