先看思路,再看代码
首先单选和多选都是使checked属性判断是否选中 checked属性只能再DOM元素中使用,
<input type="checkbox" id="first" checked>
如此按钮就是已经选中状态 由此来设置点击全选,所有单选按钮为选中就简单了 只需要把所有单选的checked的值为true即可 需要找到所有input按钮的数量,来进行寻找
var checkAll = document.getElementsByTagName("input")
全选不全选
只需要当判断当前全选是否选中,然后再以此把所有单选 下标从1是开始是因为第一个input框是全选按钮 剩下的全是单选 然后只需要循环将单选按钮的checked属性设为true即可 相反单选为false时将所有单选为false
var checkAll = document.getElementsByTagName("input")
$('#first').click(function () {
if (this.checked === true){
for (var i = 1;i<=checkAll.length;i++){
checkAll[i].checked = true
}
}else {
for (var j = 1;1<=checkAll.length;j++){
checkAll[j].checked = false
}
}
})
单选全部选中之后,全选选中
首先需要声明一个变量来存储单选有几个被选中 如单选选中的数量等于单选的数量,全选即可选中 1.判断当前点击的单选按钮是否选中,不选中则全选为不选中 2.如选中状态,则变量自增1 3.在选中里面进行判断,如果变量等于单选的数量,则全选的checked的值为true
$(".second").click(function () {
var num = 0 ;
if (this.checked===false){
document.getElementById("first").checked=false
}else {
for (var i =1;i<=checkAll.length;i++){
if (checkAll[i].checked){
num++;
}
if (num===checkAll.length-1){
document.getElementById("first").checked=true
}
}
}
})
删除选中按钮
需要倒着删,因为当你删除第一个时,下标将进行重置,原来的第二个变量第一个 所以将出现错误 1.循环判断单选按钮是否为选中状态, 2.选中状态,则使用parentNode 和 removeChild方法进行删除一行元素
$("#delBtn").click(function () {
for (var i = checkAll.length-1; i >=1 ; i--) {
if (checkAll[i].checked){
checkAll[i].parentNode.parentNode.parentNode
.removeChild(checkAll[i].parentNode.parentNode)
}
if (checkAll.length===1){
$("#none").show();
document.getElementById("first").checked=false
}
}
})
|