• 记账本开发记录——第五天(2020.1.22)


    今天继续学习了javascript的相关内容,同时学习了关于表格标签的一些新标签。

    首先,学习了如何使表格隔行换色。整体的思路不算复杂,用java里的思路就可以大致理解,以下是效果和代码:

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title>表格隔行换色</title>
     6         <script>
     7             window.onload = function(){
     8                 //1.获取表格
     9                 var tblEle = document.getElementById("tbl");
    10                 //2.获取表格中tbody里面的行数(长度)
    11                 var len = tblEle.tBodies[0].rows.length;
    12                 // alert(len);
    13                 // 3.对tbody里面的行进行遍历
    14                 for(var i=0;i<len;i++){
    15                     if(i%2==0){
    16                         //4.对偶数行设置背景颜色
    17                         tblEle.tBodies[0].rows[i].style.backgroundColor="pink";
    18                     }
    19                     else{
    20                         //5.对奇数行设置背景颜色
    21                         tblEle.tBodies[0].rows[i].style.backgroundColor="gold";
    22                     }
    23                 }
    24             }
    25         </script>
    26     </head>
    27     <body>
    28         <table border="1" width="500" height="50" align="center" id="tbl">
    29             <thead>
    30                 <tr>
    31                     <th>编号</th>
    32                     <th>姓名</th>
    33                     <th>年龄</th>
    34                 </tr>
    35             </thead>
    36             <tbody>
    37                 <tr>
    38                     <td>1</td>
    39                     <td>张三</td>
    40                     <td>22</td>
    41                 </tr>
    42                 <tr>
    43                     <td>2</td>
    44                     <td>李四</td>
    45                     <td>25</td>
    46                 </tr>
    47                 <tr>
    48                     <td>3</td>
    49                     <td>王五</td>
    50                     <td>27</td>
    51                 </tr>
    52                 <tr>
    53                     <td>4</td>
    54                     <td>赵六</td>
    55                     <td>29</td>
    56                 </tr>
    57                 <tr>
    58                     <td>5</td>
    59                     <td>田七</td>
    60                     <td>30</td>
    61                 </tr>
    62                 <tr>
    63                     <td>6</td>
    64                     <td>汾九</td>
    65                     <td>20</td>
    66                 </tr>
    67             </tbody>
    68         </table>
    69     </body>
    70 </html>
    表格隔行换色

    之后,为了巩固关于传参函数的使用,进行了一个表格高亮操作的demo。鼠标移上去时高亮,移走时取消。下面是效果和代码:

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title>表格隔行换色</title>
     6         <script>
     7             function changeColor(id,flag){
     8                 if(flag=="over"){
     9                     document.getElementById(id).style.backgroundColor="red";
    10                 }
    11                 else if(flag=="out"){
    12                     document.getElementById(id).style.backgroundColor="white";
    13                 }
    14                 
    15             }
    16         </script>
    17     </head>
    18     <body>
    19         <table border="1" width="500" height="50" align="center">
    20             <thead>
    21                 <tr>
    22                     <th>编号</th>
    23                     <th>姓名</th>
    24                     <th>年龄</th>
    25                 </tr>
    26             </thead>
    27             <tbody>
    28                 <tr onmouseover="changeColor('tr1','over')" id="tr1" onmouseout="changeColor('tr1','out')">
    29                     <td>1</td>
    30                     <td>张三</td>
    31                     <td>22</td>
    32                 </tr>
    33                 <tr onmouseover="changeColor('tr2','over')" id="tr2" onmouseout="changeColor('tr2','out')">
    34                     <td>2</td>
    35                     <td>李四</td>
    36                     <td>25</td>
    37                 </tr>
    38                 <tr onmouseover="changeColor('tr3','over')" id="tr3" onmouseout="changeColor('tr3','out')">
    39                     <td>3</td>
    40                     <td>王五</td>
    41                     <td>27</td>
    42                 </tr>
    43                 <tr onmouseover="changeColor('tr4','over')" id="tr4" onmouseout="changeColor('tr4','out')">
    44                     <td>4</td>
    45                     <td>赵六</td>
    46                     <td>29</td>
    47                 </tr>
    48                 <tr onmouseover="changeColor('tr5','over')" id="tr5" onmouseout="changeColor('tr5','out')">
    49                     <td>5</td>
    50                     <td>田七</td>
    51                     <td>30</td>
    52                 </tr>
    53                 <tr onmouseover="changeColor('tr6','over')" id="tr6" onmouseout="changeColor('tr6','out')">
    54                     <td>6</td>
    55                     <td>汾九</td>
    56                     <td>20</td>
    57                 </tr>
    58             </tbody>
    59         </table>
    60     </body>
    61 </html>
    表格高亮

    在学习了这些内容后,又进行了关于JS中DOM对象的学习,学习了DOM下的createTextNode(创建文本节点),createrElement(创建元素),appendChild(加到某个元素的最后边),首先做了一个小demo,测试这几个方法:

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="utf-8">
     5         <title>动态添加城市</title>
     6         <script>
     7             window.onload = function(){
     8                 document.getElementById("btn").onclick = function(){
     9                     var valueEle = document.getElementById("value").value;
    10                     // 1.获取ul元素节点
    11                     var ulEle = document.getElementById("ul1");
    12                     // 2.创建城市文本节点
    13                     var textNode = document.createTextNode(valueEle);
    14                     // 3.创建li元素节点
    15                     var liEle = document.createElement("li");
    16                     //4.将城市文本节点添加到li元素节点中去
    17                     liEle.appendChild(textNode);
    18                     //5.将li添加到ul中去
    19                     ulEle.appendChild(liEle);
    20                 }
    21             }
    22         </script>
    23     </head>
    24     <body>
    25         <input type="button" value="添加新城市" id="btn">
    26         <input type="text" value="" id="value">
    27         <ul id="ul1">
    28             <li>北京</li>
    29             <li>上海</li>
    30             <li>广州</li>
    31         </ul>
    32     </body>
    33 </html>
    DEMO

    之后,在这些的基础上实现了复选框的全选和全不选:

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title>全选和全不选</title>
     6         <script>
     7             function checkAll(){
     8                 // 1.获取编号前面的复选框
     9                 var checkAllEle = document.getElementById("checkAll");
    10                 // 2.对编号前面复选框的状态进行判断
    11                 if(checkAllEle.checked==true){
    12                     // 3.获取下面所有的复选框
    13                     var checkOnes = document.getElementsByName("checkOne");
    14                     // 4.对取的所有复选框进行遍历
    15                     for(var i=0;i<checkOnes.length;i++){
    16                         // 5.拿到每个复选框并将其状态置为选中
    17                         checkOnes[i].checked=true;
    18                     }
    19                 }
    20                 else{
    21                   var checkOnes = document.getElementsByName("checkOne");
    22                     for(var i=0;i<checkOnes.length;i++){
    23                        checkOnes[i].checked=false;
    24                  }
    25             }
    26             }
    27         </script>
    28     </head>
    29     <body>
    30         <table border="1" width="500" height="50" align="center">
    31             <thead>
    32                 <tr>
    33                     <td colspan="4">
    34                         <input type="button" value="添加" />
    35                         <input type="button" value="删除" />
    36                     </td>
    37                 </tr>
    38                 <tr>
    39                     <th><input type="checkbox" onclick="checkAll()" id="checkAll" /></th>
    40                     <th>编号</th>
    41                     <th>姓名</th>
    42                     <th>年龄</th>
    43                 </tr>
    44             </thead>
    45             <tbody>
    46                 <tr>
    47                     <td><input type="checkbox" name="checkOne" /></td>
    48                     <td>1</td>
    49                     <td>张三</td>
    50                     <td>22</td>
    51                 </tr>
    52                 <tr>
    53                     <td><input type="checkbox" name="checkOne" /></td>
    54                     <td>2</td>
    55                     <td>李四</td>
    56                     <td>25</td>
    57                 </tr>
    58                 <tr>
    59                     <td><input type="checkbox" name="checkOne" /></td>
    60                     <td>3</td>
    61                     <td>王五</td>
    62                     <td>27</td>
    63                 </tr>
    64                 <tr>
    65                     <td><input type="checkbox" name="checkOne" /></td>
    66                     <td>4</td>
    67                     <td>赵六</td>
    68                     <td>29</td>
    69                 </tr>
    70                 <tr>
    71                     <td><input type="checkbox" name="checkOne" /></td>
    72                     <td>5</td>
    73                     <td>田七</td>
    74                     <td>30</td>
    75                 </tr>
    76                 <tr>
    77                     <td><input type="checkbox" name="checkOne" /></td>
    78                     <td>6</td>
    79                     <td>汾九</td>
    80                     <td>20</td>
    81                 </tr>
    82             </tbody>
    83         </table>
    84     </body>
    85 </html>
    复选框的全选和全不选

    在这些的基础上,为了更好的运用这些方法,学习了如何实现省市二级联动,其中包含了二维数组的知识点。在JS中,数组的长度是动态变化的,最大的下标+1,同时学会了二维数组的定义 使用Array()

      1 <!DOCTYPE html>
      2 <html>
      3     <head>
      4         <meta charset="UTF-8">
      5         <title>注册页面重新布局</title>
      6         <style type="text/css">
      7             .top{
      8                 border: 1px solid red;
      9                 width: 32.9%;
     10                 height: 50px;
     11                 float: left;
     12             }
     13 
     14             #clear{
     15                 clear: both;
     16             }
     17             #menu{
     18                 border: 1px solid blue;
     19                 width: 99%;
     20                 height: 40px;
     21                 background-color: black;
     22             }
     23             #menu ul li{
     24                 display: inline;
     25                 color: white;
     26                 font-size: 19px;
     27             }
     28             #bottom{
     29                 text-align: center;
     30             }
     31             #contanier{
     32                 border: 1px solid red;
     33                 width: 99%;
     34                 height: 600px;
     35                 background: url(../img/regist_bg.jpg);
     36                 position: relative;
     37             }
     38             #content{
     39                 border: 5px solid gray;
     40                 width: 50%;
     41                 height: 60%;
     42                 position: absolute;
     43                 top: 100px;
     44                 left: 300px;
     45                 background-color: white;
     46                 padding-top: 50px;
     47             }
     48 
     49         </style>
     50         <script>
     51             // 1.创建一个二维数组用于存储省份和城市
     52             var cities = new Array(3);
     53             cities[0]= new Array("武汉市","黄冈市","襄阳市","荆州市");
     54             cities[1]= new Array("长沙市","郴州市","苏州市","岳阳市");
     55             cities[2]= new Array("石家庄市","邯郸市","廊坊市","保定市");
     56             cities[3]= new Array("郑州市","洛阳市","开封市","安阳市");
     57             function changeCity(val){
     58                 //7.获取第二个下拉列表
     59                 var cityEle = document.getElementById("city");
     60                 // 9.清空第二个下拉列表的option内容
     61                 cityEle.options.length = 0;
     62                 // 2.遍历二维数组中的省份
     63                 for(var i=0;i<cities.length;i++){
     64                     if(val==i){
     65                         // 3.遍历用户选择的省份下的城市
     66                         for(var j=0;j<cities[i].length;j++){
     67                             // alert(cities[i][j]);
     68                             // 4.创建城市的文本节点
     69                             var textNode = document.createTextNode(cities[i][j]);
     70                             // 5.创建option元素节点
     71                             var opEle = document.createElement("option");
     72                             // 6.文本节点添加到option元素节点去
     73                             opEle.appendChild(textNode);
     74                             // 8.将option元素节点添加到第二个下拉列表去
     75                             cityEle.appendChild(opEle);
     76                         }
     77                     }
     78                 }
     79             }
     80         </script>
     81     </head>
     82     <body>
     83         <div>
     84             
     85             <!--1.logo部分的div-->
     86             <div>
     87                 <!--切分为3个小的div-->
     88                 <div class="top">
     89                     <img src="../img/logo2.png" height="47px"/>
     90                 </div>
     91                 <div class="top">
     92                     <img src="../img/header.png" height="47px"/>
     93                 </div>
     94                 <div class="top" style="padding-top: 15px;height: 35px;">
     95                     <a href="#">登录</a>
     96                     <a href="#">注册</a>
     97                     <a href="#">购物车</a>
     98                 </div>
     99             </div>
    100             <!--清除浮动-->
    101             <div id="clear">
    102                 
    103             </div>
    104             <!--2.导航栏部分的div-->
    105             <div id="menu">
    106                 <ul>
    107                     <li >首页</li>
    108                     <li >电脑办公</li>
    109                     <li >手机数码</li>
    110                     <li >孕婴保健</li>
    111                     <li >鞋靴箱包</li>
    112                 </ul>
    113             </div>
    114             <!--3.中间注册表单部分div-->
    115             <div id="contanier">
    116                 <div id="content">
    117                     <table border="1" align="center" cellpadding="0" cellspacing="0" width="70%" height="70%" bgcolor="white">
    118                         <form method="get" action="#" onsubmit="return checkForm()">
    119                         <tr>
    120                             <td colspan="2" align="center">
    121                                 <font size="5">会员注册</font>
    122                             </td>
    123                             
    124                         </tr>
    125                         <tr>
    126                             <td>
    127                                 用户名
    128                             </td>
    129                             <td>
    130                                 <input type="text" name="username" id="username" onfocus="showTips('username','必须以字母开头')" onblur="check('username','用户名不能为空')" /><span id="usernamespan"></span>
    131                             </td>
    132                         </tr>
    133                         <tr>
    134                             <td>密码</td>
    135                             <td>
    136                                 <input type="password" name="password" id="password" onfocus="showTips('password','密码长度不能低于6位!')" onblur="check('password','密码不能为空!')" /><span id="passwordspan"></span>
    137                             </td>
    138                         </tr>
    139                         <tr>
    140                             <td>确认密码</td>
    141                             <td>
    142                                 <input type="password" name="repassword" />
    143                             </td>
    144                         </tr>
    145                         <tr>
    146                             <td>email</td>
    147                             <td>
    148                                 <input type="text" name="email" id="email" />
    149                             </td>
    150                         </tr>
    151                         <tr>
    152                             <td>姓名</td>
    153                             <td>
    154                                 <input type="text" name="name" />
    155                             </td>
    156                         </tr>
    157                         <tr>
    158                             <td>籍贯</td>
    159                             <td>
    160                                 <select onchange="changeCity(this.value)">
    161                                     <option>--请选择--</option>
    162                                     <option value="0">湖北</option>
    163                                     <option value="1">湖南</option>
    164                                     <option value="2">河北</option>
    165                                     <option value="3">河南</option>
    166                                 </select>
    167                                 <select id="city">
    168                                     
    169                                 </select>
    170                             </td>
    171                         </tr>
    172                         <tr>
    173                             <td>性别</td>
    174                             <td>
    175                                 <input type="radio" name="sex" value="男"/>176                                 <input type="radio" name="sex" value="女"/>177                             </td>
    178                         </tr>
    179                         <tr>
    180                             <td>出生日期</td>
    181                             <td>
    182                                 <input type="text" name="birthday" />
    183                             </td>
    184                         </tr>
    185                         <tr>
    186                             <td>验证码</td>
    187                             <td>
    188                                 <input type="text" name="yanzhengma" />
    189                                 <img src="../img/yanzhengma.png" />
    190                             </td>
    191                         </tr>
    192                         <tr>
    193                             <td colspan="2">
    194                                 <input type="submit" value="注册" />                                            
    195                             </td>
    196                         </tr>
    197                         </form>
    198                     </table>
    199                 </div>
    200             </div>
    201             <!--4.广告图片的div-->
    202             <div id="">
    203                 <img src="../img/footer.jpg" width="99%" />
    204             </div>
    205             <!--5.超链接与版权信息的div-->
    206             <div id="bottom">
    207                 <a href="#">关于我们 </a>
    208                 <a href="#">联系我们 </a>
    209                 <a href="#">招贤纳士 </a>
    210                 <a href="#">法律声明</a>
    211                 <a href="#">友情链接</a>
    212                 <a href="#">支付方式</a>
    213                 <a href="#">配送方式 </a>
    214                 <a href="#">服务声明 </a>
    215                 <a href="#">广告声明 </a>
    216                 <p>Copyright © 2005-2016 传智商城 版权所有 </p>
    217             </div>
    218         </div>
    219     </body>
    220 </html>
    省市二级联动

    最后,学习了一些JS里面的外部对象的使用。这些知识点都系统的学习的一遍。

    明天,开始学习JQuery的相关内容。

    今天遇到的问题:在调试代码的时候发现有时候老是粗心,比如少打了一个大括号,还有字母大小写打错等等。这些都是需要注意的问题。

  • 相关阅读:
    文件操作回顾
    数据类型回顾
    面向对象三大特性之封装与多态
    面向对象之继承
    轮播图
    jQuery事件操作
    jQuery动画效果
    jQuery篇
    文档对象模型
    javascript
  • 原文地址:https://www.cnblogs.com/wushenjiang/p/12229363.html
Copyright © 2020-2023  润新知