复选框选中与全选、删除及选中删除

这篇博客详细介绍了如何在网页中实现复选框的全选、删除以及选中删除功能。首先,通过创建和设置HTML元素属性来构建复选框。接着,从复选框中获取选中项的值,并将其显示在页面上。最后,探讨了如何实现选中项的删除操作,以及结合全选功能进行批量删除的逻辑处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var json = '[{"ename" : "John", "salary" : 6000, "age" : 20},{"ename" : 
"Ella", "salary" : 10000, "age" : 25},{"ename" : "Jack", "salary" : 5000,
 "age" : 18},{"ename" : "Chen", "salary" :106000, "age" : 30}]';
console.log(JSON.parse(json));
var arr = JSON.parse(json);

将以上数据添加到页面

创建元素,设置元素属性 ,将元素添加到HTML上

var div = document.getElementById('data');        
//创建ul        
var oul = document.createElement('ul');        
oul.className = 'thead';        
//将ul添加到父级元素上        
div.appendChild(oul);        
//创建li标签        
var li = document.createElement('li');        
//创建input        
var input = document.createElement('input');        
//设置input的type为复选框        
input.setAttribute('type','checkbox');        
//设置id        
input.setAttribute('id','check');        
// 将input添加到li标签上        
li.appendChild(input);
// 创建label
var label = document.createElement('label');
//设置label的属性,点击文字复选框也能选中
label.setAttribute('for','check');
//将文字添加到HTML页面上
label.innerHTML = '全选';
//将label标签添加到li标签上
li.appendChild(label);
//将li标签添加到ul上
oul.appendChild(li);
//创建操作li标签
var czli = document.createElement('li');
czli.innerHTML = '操作';
oul.appendChild(czli);

将值取出,添加到HTML上

//获取数组里对象的key值        
for(var i  in  arr[0]){           
 var oli = document.createElement('li');            
 oli.innerHTML = i;            
 oul.appendChild(oli);        
 }
for (var i = 0; i < arr.length; i++) {            
var oul = document.createElement('ul');            
div.appendChild(oul);
var input = document.createElement('input');
input.setAttribute('type','checkbox');
input.setAttribute('id','check');            
var lis = document.createElement('li');            
lis.appendChild(input);
oul.appendChild(lis);
//获取数组里对象的value值            
for (var key in arr[i]) {                
var oli = document.createElement('li');
oul.appendChild(oli).innerHTML = arr[i][key];            
}            
var delli = document.createElement('li');            
var a = document.createElement('a');            
a.innerHTML = '删除';            
delli.appendChild(a);            
oul.appendChild(delli);
}

选中部分

//找到除第一行以外的所有checkbox        
var che = document.querySelectorAll('ul:not(.thead) input');        
//通过id找到选项框        
var selid = document.getElementById('check');        
li.onclick = function(){            
for(var i = 0;i < che.length;i++){                
che[i].checked = selid.checked;            
}        
}
for(var j = 0;j < che.length;j++){            
che[j].onclick = check;        
}        
function check(){            
if(this.checked){                
//除第一行以外的所有checkbox                
var che_xz = 
document.querySelectorAll('ul:not(.thead) input:not(:checked)');
//如果che_xz数组(选中)的长度= 0,表示所有checkbox都被选中
if(che_xz.length == 0){
//全选勾中
selid.checked = true;
}else{
//全选不勾中
selid.checked = false;  
}            
}else{                
//取消全选                
selid.checked = false;            
}        
}

删除部分

//获取删除按钮
var btn = document.getElementsByTagName('a');
//循环获取点击的按钮
for(var i = 0 ; i < arr.length;i++){
btn[i].onclick = function(){
this.parentNode.parentNode.remove();
}
}
//批量删除
var delet = document.getElementsByTagName('button');
delet[0].onclick = function(){
//将选中的数据存放到dele数组中
var dele = document.querySelectorAll('ul:not(.thead) input:checked');            if(dele.length == 0){
//没有选中数据
alert('请选中需要删除的选项');
}else{  //否则删除选中数据
for(var n = 0;n < dele.length;n++){
dele[n].parentNode.parentNode.remove();
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值