全选功能的理解和总结

Original 2019-04-20 00:16:13 308
abstract: <div class='selectoption'> <div class='checkall'> <input type="checkbox" id="checkall" onclick="checkall(this)"><label for="

<div class='selectoption'>

<div class='checkall'>

<input type="checkbox" id="checkall" onclick="checkall(this)"><label for="checkall">全选</label>

</div>

<ul>

<li class='first_li'><input type="checkbox" name="item" id='item[0]'><label for="item[0]">选项1</label></li>

<li><input type="checkbox" name="item" id='item[1]'><label for="item[1]">选项2</label></li>

<li><input type="checkbox" name="item" id='item[2]'><label for="item[2]">选项3</label></li>

<li><input type="checkbox" name="item" id='item[3]'><label for="item[3]">选项4</label></li>

<li><input type="checkbox" name="item" id='item[4]'><label for="item[4]">选项5</label></li>

<li><input type="checkbox" name="item" id='item[5]'><label for="item[5]">选项6</label></li>

<li><input type="checkbox" name="item" id='item[6]'><label for="item[6]">选项7</label></li>

<li><input type="checkbox" name="item" id='item[7]'><label for="item[7]">选项8</label></li>

</ul>


</div>


//2、CSS

.selectoption{

width: 120px;

margin:0 auto;

border:1px solid #ccc;

border-radius: 10px;

padding: 0 10px;

}


.selectoption .checkall{

border-bottom: 1px solid #000;

padding:10px 0;

}


.selectoption ul li{

padding-bottom:3px;

}


.selectoption ul li.first_li{

padding-top:7px;

}


//3.javascript如下

//全选框作业

function checkall(){

$ItemArr = document.getElementsByName('item');

for (var i = 0;i<= $ItemArr.length - 1;i++) {

if (document.getElementById('checkall').checked) {

$ItemArr[i].checked = true;

}else{

$ItemArr[i].checked = false;

};

};

};

//效果图:全选作业图.png

//总结:获取【全选】控件的句柄,然后通过点击事件触发函数,再通过document.getElementById('checkall').checked获取其选中状态,document.getElementsByName以数组形式循环返回item子选项的句柄,最后根据【全选】的选中状态来循环改变item子选项的选中状态。个人建议尽量少用<br>,所以我使用ul标签将子选项以li容器标签存放,实现块元素效果。

Correcting teacher:西门大官人Correction time:2019-04-20 13:26:41
Teacher's summary:如果学习过jquery,可以用jquery更方便的实现全选功能

Release Notes

Popular Entries