• L9-DOM高级应用


    DOM高级应用主要是讲解表格的应用和表单的应用。

    表格的应用:

      我们一般获取表格第一行第一列的方法是:document.getElementsByTagName('table').document.getElementsByTagName('tr')[0].getElementsByTagName('td')[0];

    其实有简便的操作:oTab.tBodies[0].rows[0].cells[0]。(tBodies、tHead、tFoot、rows、cells等)。接下来应用这写简便操作对表格进行案例分析。

      例子:隔行变色

    <table width="400px"; border="1" id="tab">
        <thead>
            <tr>
                <td>ID</td>
                <td>姓名</td>
                <td>年龄</td>
                <td></td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>fruit</td>
                <td>23</td>
                <td></td>
            </tr>
            <tr>
                <td>2</td>
                <td>yellow</td>
                <td>22</td>
                <td></td>
            </tr>
            <tr>
                <td>3</td>
                <td>fruit</td>
                <td>25</td>
                <td></td>
            </tr>
            <tr>
                <td>4</td>
                <td>Mick</td>
                <td>34</td>
                <td></td>
            </tr>
            <tr>
                <td>5</td>
                <td>Nice</td>
                <td>32</td>
                <td></td>
            </tr>
        </tbody>
    </table>

    js

                //  1、找出yellow这个单元格并设置其背景颜色为yellow
                var oTab = document.getElementById('tab');
                oTab.tBodies[0].rows[1].cells[1].style.background = 'yellow';
    
                //  2、隔行变色(单灰双白)
                var aTr = oTab.tBodies[0].rows;
                //alert(aTr.length);
                for(var i = 0; i < aTr.length; i++ ){
                    if(i%2){
                        aTr[i].style.background = " ";
                    }
                    else{
                        aTr[i].style.background = "#ccc";
                    }
                }
    
                    //   3、鼠标移入高亮
                var oldColor = " "; //  声明一个变量存储鼠标移入单元格之前的背景颜色值
    
                for(var i = 0; i < aTr.length; i++ ){
                    aTr[i].onmouseover = function(){
                        oldColor = this.style.background;
                        this.style.background = "red";
                    }
                    aTr[i].onmouseout = function(){
                        this.style.background = oldColor;
                    }
                }
    
                var oRows = oTab.tBodies[0].rows.length+1;
                //alert(oRows);
                //   4、DOM操作添加一行
                var oName = document.getElementById('name');
                var oAge = document.getElementById('age');
                var oBtn = document.getElementById('btn');
    
                oBtn.onclick = function(){
                    //现有rows ,再有cells
                    var oTr = document.createElement('tr');
    
                    var oTd = document.createElement('td');
                    oTd.innerHTML =oRows++;
                    oTr.appendChild(oTd);
    
                    var oTd = document.createElement('td');
                    oTd.innerHTML = oName.value;
                    oTr.appendChild(oTd);
    
                    var oTd = document.createElement('td');
                    oTd.innerHTML = oAge.value;
                    oTr.appendChild(oTd);
    
                    var oTd = document.createElement('td');
                    oTd.innerHTML = "<a href='javascript:;'>删除</a>";
                    oTr.appendChild(oTd);
    
                    oTd.getElementsByTagName('a')[0].onclick = function(){
                        oTab.removeChild(this.parentNode.parentNode);
                    }
    
                    oTab.appendChild(oTr);
                

     表格的应用-2

      搜索  (高亮显示、筛选)

      版本一:基本搜索——字符串比较

      版本二:忽略大小写——大小写转换

      版本三:模糊查询——search的使用

      版本四:多关键字——split

    html

     1 请输入关键字:<input type="text" id="keyword"/>
     2 <input type="button" id="search_btn" value="搜索"/>
     3 
     4 <table width="400px"; border="1" id="tab">
     5     <thead>
     6     <tr>
     7         <td>ID</td>
     8         <td>姓名</td>
     9         <td>年龄</td>
    10         <td>操作</td>
    11     </tr>
    12     </thead>
    13     <tbody>
    14     <tr>
    15         <td>1</td>
    16         <td>red</td>
    17         <td>23</td>
    18         <td></td>
    19     </tr>
    20     <tr>
    21         <td>2</td>
    22         <td>yellow</td>
    23         <td>22</td>
    24         <td></td>
    25     </tr>
    26     <tr>
    27         <td>3</td>
    28         <td>fruit</td>
    29         <td>25</td>
    30         <td></td>
    31     </tr>
    32     <tr>
    33         <td>4</td>
    34         <td>Mick</td>
    35         <td>34</td>
    36         <td></td>
    37     </tr>
    38     <tr>
    39         <td>5</td>
    40         <td>Nice</td>
    41         <td>32</td>
    42         <td></td>
    43     </tr>
    44     </tbody>
    45 </table>
    View Code

    js

     1 var oTab = document.getElementById('tab');
     2             var oTxt = document.getElementById('keyword');
     3             var oSchBtn = document.getElementById('search_btn');
     4 
     5 
     6             oSchBtn.onclick = function(){
     7                 for(var i=0; i< oTab.tBodies[0].rows.length; i++){
     8 
     9                     var sTab = oTab.tBodies[0].rows[i].cells[1].innerHTML.toLocaleLowerCase();//1、不区分大小写
    10                     var sTxt = oTxt.value.toLocaleLowerCase();
    11                     var arr = sTxt.split(' ');
    12 
    13                     oTab.tBodies[0].rows[i].style.background='';
    14 
    15                     for(var j = 0; j < arr.length; j++){
    16                         // 2模糊查询     3关键字查询
    17                         if(sTab.search(arr[j])!= -1){
    18                             oTab.tBodies[0].rows[i].style.background = 'yellow';
    19                         }
    20                     }
    21 
    22                 }
    23             }
    24         }
    View Code

     

      排序

        移动li  appendChild

        元素排序:转换——排序——插入

    <ul id="ul1">
        <li>81</li>
        <li>22</li>
        <li>13</li>
        <li>64</li>
    </ul>
    <input type="button" id="btn1" value="排序"/>
     1 var oUl1 = document.getElementById('ul1');
     2             var oBtn = document.getElementById('btn1');
     3 
     4             oBtn.onclick = function(){
     5                 var aLi = oUl1.getElementsByTagName('li');
     6                 var arr = [];
     7 
     8                 for(var i = 0; i< aLi.length;i++){
     9                     arr.push(aLi[i]);
    10                 }
    11                 arr.sort(function(li1,li2){
    12                     var num1 = parseInt(li1.innerHTML);
    13                     var num2 = parseInt(li2.innerHTML);
    14 
    15                     return num1 - num2;
    16                 })
    17                 for(var i = 0; i<arr.length;i++){
    18                     oUl1.appendChild(arr[i]); //appendChild先从父级移除,然后再添加到父级
    19                 }
    View Code

    接下来的是表单的应用(入门)

      什么是表单:简要理解就是向服务器提交数据。比如:用户注册

      action  提交到哪里

      表单事件

        onsubmit  提交时发生

        onreset  重置时放生

      表单的内容验证:

        阻止用户输入非法字符  阻止事件

        输入时,失去焦点时验证  onkeyup onblur    

    请输入用户名:<input type="text" id="user"/><span id="txt1"></span><br/>
    请输入密码:<input type="password" id="pass"/><span id="txt2"></span>
    <input type="submit" id="btn1" value="提交"/>
     var user = document.getElementById('user');
                var pass = document.getElementById('pass');
                var uTxt = document.getElementById('txt1');
                var pTxt = document.getElementById('txt2');
    
                user.onblur = function(){
                   if(user.value.length<6){
                       uTxt.innerHTML = "用户名不能少于6位";
                   }
                    else{
                       uTxt.innerHTML = "";
                   }
                }

     

       提交时检测  onsubmit

  • 相关阅读:
    hive高阶函数和采样-优化
    zookeeper搭建
    hive常用函数和建表
    hive常用函数-建表-jdbc
    hadoop远程调试和配置HA
    hadoop-MR-排序
    python spark
    jenkins安装
    beetlsql
    spark页面单跳转化率
  • 原文地址:https://www.cnblogs.com/linyongli/p/5320556.html
Copyright © 2020-2023  润新知