HTML中如何写for循环全选,JavaScript之全选/反选/取消,for循环闭包

需求:table中要求点击红色单元格和点击checkbox的效果一样,最后一行点击就是全选、反选、取消选择的效果。

6bfca20de634a2317d1417562f281e70.png

Title

table{

width: 400px;

height: 15px;

background-color: palegreen;

text-align: center;

}

.check{

width: 20%;

background-color: indianred;

}

input{

display: inline-block;

vertical-align:middle;

}

div{

display: inline-block;

width: 400px;

}

div input{

display: inline-block;

width: 20%;

}

.select{

background-color: bisque;

}

富贵竹绿萝
栀子花月季
金银花菊花
玫瑰百合

var ele= document.getElementsByTagName("input");

var check= document.getElementsByClassName("check");

var inputcheck= document.getElementsByClassName("inputcheck");

var all = document.getElementsByClassName("selectall")[0];

var reserve = document.getElementsByClassName("reserve")[0];

var cancel = document.getElementsByClassName("cancel")[0];

//for循环闭包

for(var i=0;i

var td = check[i];

td.onclick = function () {

var td = check[i];

return function () {

var input = td.getElementsByTagName("input")[0];

if(input.checked){

input.checked = false;

}else {

input.checked = true;

}

}

}(i)

}

//for循环闭包

for(var i=0;i

var input = inputcheck[i];

input.onclick = function () {

var input = inputcheck[i];

return function () {

if(input.checked){

input.checked = false;

}else {

input.checked = true;

}

}

}(i)

}

//全选

all.οnclick=function () {

for(var i=0;i

ele[i].checked=true;

}

}

//反选

reserve.οnclick=function () {

for(var i=0;i

if(ele[i].checked){

ele[i].checked=false;

}

else {

ele[i].checked=true;

}

}

}

//取消

cancel.onclick =function () {

for(var i=0;i

ele[i].checked=false;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过在表格外部添加一个复选框来实现全选/反选功能,具体实现如下: ```vue <template> <div> <a-checkbox v-model="allSelected" @change="handleAllSelectedChange">全选</a-checkbox> <a-table :columns="columns" :dataSource="dataSource" :rowSelection="rowSelection"></a-table> </div> </template> <script> import { Table, Checkbox } from 'ant-design-vue'; export default { components: { ATable: Table, ACheckbox: Checkbox, }, data() { return { allSelected: false, dataSource: [ { id: 1, name: 'John Brown', age: 18 }, { id: 2, name: 'Jim Green', age: 24 }, { id: 3, name: 'Joe Black', age: 30 }, ], selectedRowKeys: [], columns: [ { title: 'ID', dataIndex: 'id', }, { title: '姓名', dataIndex: 'name', }, { title: '年龄', dataIndex: 'age', }, ], }; }, computed: { rowSelection() { return { selectedRowKeys: this.selectedRowKeys, onChange: this.handleSelectedRowKeysChange, }; }, }, methods: { handleSelectedRowKeysChange(selectedRowKeys) { this.selectedRowKeys = selectedRowKeys; }, handleAllSelectedChange(checked) { if (checked) { this.selectedRowKeys = this.dataSource.map(item => item.id); } else { this.selectedRowKeys = []; } }, }, }; </script> ``` 在上面的代码,我们在表格外部添加了一个复选框,并绑定了`allSelected`属性来控制它的选状态。接着,我们在表格的`rowSelection`属性设置了`selectedRowKeys`和`onChange`,其`selectedRowKeys`绑定到了`selectedRowKeys`属性,`onChange`绑定到了`handleSelectedRowKeysChange`方法上。当表格的行被选取消时,`selectedRowKeys`会发生变化,`handleSelectedRowKeysChange`方法会被调用。 当全选按钮被选取消时,我们可以通过`handleAllSelectedChange`方法来实现全选/反选功能。如果全选按钮被选,则将`selectedRowKeys`设置为所有行的`id`,否则将`selectedRowKeys`清空。这样,就实现了全选/反选功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值