2-8 编程练习
本节编程练习不计算学习进度,请电脑登录imooc.com操作

编程练习

小伙伴们,根据所学知识,使用JS完成一个列表项的选择功能,包括全选,单选,并计算已选的数目。

效果图:

温馨提示:完成任务后,请验证是否与实践描述效果一致,如一致,恭喜您,你已经掌握此技能。

任务

一、静态布局制作,实现广告部分和正文部分。

提示:
使用li标签存放选项。

二、用JS实现选择功能。

1. 计算已选项函数:

提示:
  1)说明一个变量ret,初始值为零
  2)变量所有列表项,如果此项已选,ret自加1
  3)把ret的最终值写入显示结果的元素的html里

2. 添加全选框的onchange事件:

提示:
  1)遍历所有列表项,把每一项的checked值改为全选框的checked值
  2)调用计算已选项函数

3. 添加每个列表项的事件

提示:
  遍历所有列表项,为每一项添加onchange事件,调用计算已选项函数

注意:只要有一项未选择,则要把全选框的checked变更false

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style type="text/css">
  7. *{
  8. margin: 0;
  9. padding: 0;
  10. list-style: none;
  11. }
  12. body {
  13. padding: 20px;
  14. }
  15.  
  16. li {
  17. float: left;
  18. margin: 20px;
  19. }
  20. #total {
  21. clear: both;
  22. }
  23. </style>
  24. <script type="text/javascript">
  25. window.onload = function () {
  26.  
  27. // 获取元素
  28. var all = document.getElementById('all');
  29. var list = document.getElementById('list');
  30. var inputs = list.getElementsByTagName('input');
  31. var total = document.getElementById('total');
  32.  
  33. // 计算已选项的总数
  34.  
  35.  
  36. // 全选事件
  37.  
  38.  
  39. // 每个选项的事件
  40.  
  41. }
  42. </script>
  43. </head>
  44. <body>
  45. <div><label><input id="all" type="checkbox"/>全选</label></div>
  46. <ul id="list">
  47. <li><label><input type="checkbox"/>选项1</label></li>
  48. <li><label><input type="checkbox"/>选项2</label></li>
  49. <li><label><input type="checkbox"/>选项3</label></li>
  50. <li><label><input type="checkbox"/>选项4</label></li>
  51. <li><label><input type="checkbox"/>选项5</label></li>
  52. <li><label><input type="checkbox"/>选项6</label></li>
  53. </ul>
  54. <div id="total">已选:0 项</div>
  55. </body>
  56. </html>
下一节