演示checkbox和table的用法

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>演示checkbox和table的用法</title>
        <style type="text/css">
           table {
                border: #8080ff solid 1px;
                width: 400px;
                border-collapse: collapse;
            }
            
            table th {
                border: #ff0000 solid 1px;
                padding: 5px;
                background-color: rgb(200, 200, 200);
            }
            
            table td {
                border: #ff0000 solid 1px;
                padding: 5px;
            }
            .one {
                background-color: #ffff80;
            }
            
            .two {
                background-color: #0080ff;
            }
            
            .over {
                background-color: #80ffff;
            }
            .over {
                background-color: #80ffff;
            }
        </style>
    </head>
    <body>
    </body>

<script type="text/javascript">
var bgColor;
        function trColor(){//颜色的隔行显示和控制背景颜色
            var oTable = document.getElementById("mailTable");
            var collTrNodes = oTable.rows;
            for (var i = 1; i < collTrNodes.length; i++) {
                if (i % 2 == 1) {
                    collTrNodes[i].className = "one";
                }
                else {
                    collTrNodes[i].className = "two";
                };
                //鼠标悬停时的状态
                collTrNodes[i].onmouseover = function(){
                    bgColor = this.className;
                    this.className = "over";
                }
                collTrNodes[i].onmouseout = function(){
                    this.className = bgColor;
                };
            }
        }
onload =trColor;//加载完后执行;
 
   function checkAll(node){//全选功能的实现
var collMailChkNodes = document.getElementsByName("mail");
for(var i=1;i<collMailChkNodes.length;i++){
collMailChkNodes[i].checked =node.checked;
}
}
 
function checkAllByBtn(num){//全选,反选·全部取消等功能的实现
var collMailChkNodes =document.getElementsByName("mail")
for(var i=0;i<collMailChkNodes.length;i++){
if(num>1){
collMailChkNodes[i].checked = !(collMailChkNodes[i].checked);//反选功能的实现(状态的转换)
}else{
collMailChkNodes[i].checked = num;//0和1表示0和非0,即flase和true
}
}
}

function delMails(){
//反逻辑,卫条件
  if(!confirm("你确认要删除所选的邮件吗?")){
 return; 
  }
  var collMailChkNodes = document.getElementsByName("mail");
    //法1:从前往后删,需要把序号回退一下
    for(var i=0;i<collMailChkNodes.length;i++){//此处需要遍历移除,所以要先i++然后i--。如果不需要遍历时,则只需要在for中不写i++就行了
if(collMailChkNodes[i].checked){
var otrNode = collMailChkNodes[i].parentNode.parentNode;//mail--td--tr
otrNode.parentNode.removeChild(otrNode);
i--;  
}
}
}
/*//法2: 从后往前删,更简单
  for(var i=collMailChkNodes.length-1;i>=0;i--){
  if(collMailChkNodes[i].checked){
  var oTrNode = collMailChkNodes[i].parentNode.parentNode;
  oTrNode.parentNode.removeChild(oTrNode);
  }
  }
  }
*/
</script>

    <table id= "mailTable">
        <tr>
            <th><input type="checkbox" name="aa" οnclick="checkAll(this);">全选</th>
            <th> 发件人 </th>
            <th>  邮件标题 </th>
            <th> 附件</th>
        </tr>
        <tr>
            <td> <input type="checkbox" name="mail"> </td>
            <td> 张三1</td>
            <td>邮件标题1</td>
            <td> 附件1</td>
        </tr>
  <tr>
            <td> <input type="checkbox" name="mail"> </td>
            <td> 张三2</td>
            <td>邮件标题2</td>
            <td>附件1</td>
        </tr>
<tr>
            <td> <input type="checkbox" name="mail"> </td>
            <td> 张三3</td>
            <td>邮件标题3</td>
            <td>附件1</td>
        </tr>
<tr>
            <td> <input type="checkbox" name="mail"> </td>
            <td> 张三4</td>
            <td>邮件标题4</td>
            <td>附件1</td>
        </tr>
<tr>
            <td> <input type="checkbox" name="mail"> </td>
            <td> 张三5</td>
            <td>邮件标题5</td>
            <td>附件1</td>
        </tr>
<tr>
            <td> <input type="checkbox" name="mail"> </td>
            <td> 张三6</td>
            <td>邮件标题6</td>
            <td>附件1</td>
        </tr>
<tr>
            <td> <input type="checkbox" name="mail"> </td>
            <td> 张三7</td>
            <td>邮件标题7</td>
            <td>附件1</td>
        </tr>
<tr>
            <td> <input type="checkbox" name="mail"> </td>
            <td> 张三8</td>
            <td>邮件标题8</td>
            <td>附件1</td>
        </tr>
    </table>
&nbsp; &nbsp;&nbsp;
<input type="button" value="全选" οnclick="checkAllByBtn(1)"> &nbsp; &nbsp;&nbsp;
<input type="button" value="全部取消" οnclick="checkAllByBtn(0)"> &nbsp; &nbsp;&nbsp;
<input type="button" value="反选" οnclick="checkAllByBtn(2)"> &nbsp; &nbsp;&nbsp;
<input type="button" value="删除邮件" οnclick="delMails()">

</html>



删除行


删除最后一行的结果


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用vue-table-component中的removeSelected方法来删除checkbox选中的行。首先,在你的template中加入一个删除按钮,并绑定一个方法,如下所示: ``` <template> <vue-table-component> <template slot="table-actions"> <button @click="removeSelected">删除选中行</button> </template> </vue-table-component> </template> ``` 然后在你的script标签中,添加removeSelected方法: ``` <script> export default { methods: { removeSelected() { this.$refs.table.removeSelected() }, }, } </script> ``` removeSelected方法会删除checkbox选中的所有行。 ### 回答2: vxetable是一个基于Vue.js和Element UI的表格组件,用于实现数据展示和交互功能。要删除checkbox选中的行,可以按照以下步骤进行操作: 1. 在表格的列定义中添加一个包含checkbox的列,并设置对应的prop属性,例如: ```javascript { field: '__selection__', width: 40, align: 'center', type: 'selection' } ``` 这样就会在表格中显示带有checkbox的列。 2. 在表格实例中定义一个变量来存储选中的行的数据: ```javascript data() { return { selectedRows: [] // 存储选中行的数据 } } ``` 3. 给checkbox列添加一个事件监听,当checkbox状态改变时,更新选中行的数据: ```javascript <vxe-table-column field="__selection__" align="center" type="selection" @change-selection="handleSelectionChange"></vxe-table-column> ``` ```javascript methods: { handleSelectionChange(selectedRows) { this.selectedRows = selectedRows } } ``` 这样,每次checkbox选中状态改变时,`handleSelectionChange`方法都会执行,并更新`selectedRows`变量的值。 4. 定义删除选中行的操作方法,可以创建一个按钮或其他触发手段来调用这个方法: ```javascript methods: { deleteSelectedRows() { // 遍历selectedRows数组,根据行数据的唯一标识进行删除操作 // 这里假设行数据的唯一标识字段为id this.selectedRows.forEach(row => { const index = this.tableData.findIndex(item => item.id === row.id) this.tableData.splice(index, 1) // 从表格数据中删除选中的行 }) this.selectedRows = [] // 清空选中行的数据 // 如果使用服务端分页,可以在此发送异步请求到后台删除对应的行数据 // ... } } ``` 在这个方法中,我们遍历`selectedRows`数组,根据行数据的唯一标识字段进行删除操作。在完成删除后,需要清空`selectedRows`数组。 通过以上步骤,就可以实现删除checkbox选中的行的功能。当点击“删除选中行”按钮或其他触发方法时,会执行`deleteSelectedRows`方法,将选中的行从表格数据中删除,并清空选中行的数据。 ### 回答3: 要删除VxeTable中选中的行,可以按照以下步骤进行操作: 1. 首先,在VxeTable组件中定义一个data属性,用于存储表格的数据。例如,可以定义一个名为tableData的数组,用来存储表格的行数据。 2. 在表格中的每一行添加一个checkbox,用于选择要删除的行。可以使用VxeTable组件提供的selection-config配置项来配置checkbox的显示和选择行为。 3. 在页面中添加一个按钮,用于触发删除选中行的操作。 4. 在按钮的点击事件中,编写一个方法来处理删除选中行的逻辑。可以在该方法中使用VxeTable组件提供的getSelection方法来获取选中的行数据。 5. 将获取到的选中行数据与tableData中的数据进行比较,找到要删除的行的索引。 6. 使用splice方法将要删除的行从tableData数组中移除,从而实现删除选中行的操作。 下面是一个示例代码,用于演示如何删除VxeTable中选中的行: ```html <template> <div> <vxe-table :data="tableData"> <vxe-table-column type="selection" width="60"></vxe-table-column> <vxe-table-column field="name" title="姓名"></vxe-table-column> <vxe-table-column field="age" title="年龄"></vxe-table-column> </vxe-table> <button @click="deleteSelectedRows">删除选中行</button> </div> </template> <script> export default { data() { return { tableData: [ { name: '张三', age: 20 }, { name: '李四', age: 25 }, { name: '王五', age: 30 } ] }; }, methods: { deleteSelectedRows() { const selectedRows = this.$refs.table.getSelection(); selectedRows.forEach(row => { const index = this.tableData.indexOf(row); if (index > -1) { this.tableData.splice(index, 1); } }); } } }; </script> ``` 通过以上步骤的操作,当点击按钮时,选中的行将会从表格中删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值