zoukankan      html  css  js  c++  java
  • 06.DOM操作应用高级

    获取表格
    tBodies、tHead、tFoot、
    rows获取行  cells获取td
    隔行变色

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    <script>
    window.onload=function ()
    {
        var oTab=document.getElementById('tab1');
        var oldColor='';
        
        for(var i=0;i<oTab.tBodies[0].rows.length;i++)
        {
            //鼠标移入
            oTab.tBodies[0].rows[i].onmouseover=function ()
            {
                oldColor=this.style.background;//表格每行原来的颜色
                this.style.background='green';
            };
            //鼠标移除
            oTab.tBodies[0].rows[i].onmouseout=function ()
            {
                this.style.background=oldColor;
            };
            //隔行变色
            if(i%2)
            {
                oTab.tBodies[0].rows[i].style.background='';
            }
            else
            {
                oTab.tBodies[0].rows[i].style.background='#CCC';
            }
        }
    };
    </script>
    </head>
    
    <body>
    <table id="tab1" border="1" width="500">
        <thead>
            <td>ID</td>
            <td>姓名</td>
            <td>年龄</td>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>Blue</td>
                <td>27</td>
            </tr>
            <tr>
                <td>2</td>
                <td>张三</td>
                <td>23</td>
            </tr>
            <tr>
                <td>3</td>
                <td>李四</td>
                <td>28</td>
            </tr>
            <tr>
                <td>4</td>
                <td>王五</td>
                <td>25</td>
            </tr>
            <tr>
                <td>5</td>
                <td>张伟</td>
                <td>24</td>
            </tr>
        </tbody>
    </table>
    </body>
    </html>
    View Code

    表格的添加删除

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    <script>
    window.onload=function ()
    {
        var oTab=document.getElementById('tab1');
        
        var oBtn=document.getElementById('btn1');
        var oName=document.getElementById('name');
        var oAge=document.getElementById('age');
        var id=oTab.tBodies[0].rows.length+1;
        
        oBtn.onclick=function ()
        {
            var oTr=document.createElement('tr');//创建行
            
            var oTd=document.createElement('td');//创建第一个td用于id
            oTd.innerHTML=id++;    //?
            oTr.appendChild(oTd);
            
            var oTd=document.createElement('td');//创建第二个td用于姓名
            oTd.innerHTML=oName.value;
            oTr.appendChild(oTd);
            
            var oTd=document.createElement('td');//创建第三个td用于年龄
            oTd.innerHTML=oAge.value;
            oTr.appendChild(oTd);
            
            var oTd=document.createElement('td');//创建第四个td用于删除操作
            oTd.innerHTML='<a href="javascript:;">删除</a>';
            oTr.appendChild(oTd);
            //删除操作添加事件
            oTd.getElementsByTagName('a')[0].onclick=function ()
            {
                oTab.tBodies[0].removeChild(this.parentNode.parentNode);//删除所在行
            };
            
            oTab.tBodies[0].appendChild(oTr);//给表格添加行
        };
    };
    </script>
    </head>
    
    <body>
    姓名:<input id="name" type="text" />
    年龄:<input id="age" type="text" />
    <input id="btn1" type="button" value="添加" />
    <table id="tab1" border="1" width="500">
        <thead>
            <td>ID</td>
            <td>姓名</td>
            <td>年龄</td>
            <td>操作</td>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>Blue</td>
                <td>27</td>
                <td></td>
            </tr>
            <tr>
                <td>2</td>
                <td>张三</td>
                <td>23</td>
                <td></td>
            </tr>
            <tr>
                <td>3</td>
                <td>李四</td>
                <td>28</td>
                <td></td>
            </tr>
            <tr>
                <td>4</td>
                <td>王五</td>
                <td>25</td>
                <td></td>
            </tr>
            <tr>
                <td>5</td>
                <td>张伟</td>
                <td>24</td>
                <td></td>
            </tr>
        </tbody>
    </table>
    </body>
    </html>
    View Code

     表格搜索

    搜索 版本1:基础版本——字符串比较
           版本2:忽略大小写——大小写转换
           版本3:模糊搜索——search的使用
           版本4:多关键词——split 高亮显示、筛选


    toLowerCase()变成小写
    toUpperCase()变成大写

    例子:var str='ABC';   alert(str.toLowerCase());
    search()
    方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
    例子:
    var str='ABC';   alert(str.search('A'));   //弹出的是0
    var str='ABC';   alert(str.search('B'));   //弹出的是1
    var str='ABC';   alert(str.search('a'));   //弹出的是-1 如果没有找到任何匹配的子串,则返回 -1。
    var str='ABC';   alert(str.search(/a/i));  //忽略大小写的搜索方法


    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    <script>
    window.onload=function ()
    {
        var oTab=document.getElementById('tab1');
        var oTxt=document.getElementById('name');
        var oBtn=document.getElementById('btn1');
        
        oBtn.onclick=function ()
        {
            for(var i=0; i<oTab.tBodies[0].rows.length; i++)
            {
                var sTab=oTab.tBodies[0].rows[i].cells[1].innerHTML.toLowerCase();
                var sTxt=oTxt.value.toLowerCase();
                
                var arr=sTxt.split(' ');
                
                oTab.tBodies[0].rows[i].style.display='none';
                
                for(var j=0;j<arr.length;j++)
                {
                    if(sTab.search(arr[j])!=-1)
                    {
                        oTab.tBodies[0].rows[i].style.display='block';
                    }
                }
            }
        };
    };
    </script>
    </head>
    
    <body>
    姓名:<input id="name" type="text" />
    <input id="btn1" type="button" value="搜索" />
    <table id="tab1" border="1" width="500">
        <thead>
            <td>ID</td>
            <td>姓名</td>
            <td>年龄</td>
            <td>操作</td>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>Blue</td>
                <td>27</td>
                <td></td>
            </tr>
            <tr>
                <td>2</td>
                <td>张三</td>
                <td>23</td>
                <td></td>
            </tr>
            <tr>
                <td>3</td>
                <td>李四</td>
                <td>28</td>
                <td></td>
            </tr>
            <tr>
                <td>4</td>
                <td>王五</td>
                <td>25</td>
                <td></td>
            </tr>
            <tr>
                <td>5</td>
                <td>张伟</td>
                <td>24</td>
                <td></td>
            </tr>
            <tr>
                <td>6</td>
                <td>王四</td>
                <td>24</td>
                <td></td>
            </tr>
        </tbody>
    </table>
    </body>
    </html>
    View Code

     表格排序

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    <script>
    window.onload=function ()
    {
        var oTab=document.getElementById('tab1');
        var oBtn=document.getElementById('btn1');
        
        oBtn.onclick=function ()
        {
            var arr=[];//定义一个空数组
            
            for(var i=0;i<oTab.tBodies[0].rows.length;i++)
            {
                arr[i]=oTab.tBodies[0].rows[i];//把表格里的内容传到数组里
            }
            
            arr.sort(function (tr1, tr2){//传参两个数 比较
                var n1=parseInt(tr1.cells[0].innerHTML);
                var n2=parseInt(tr2.cells[0].innerHTML);
                
                return n1-n2;//从小到大排列 若从大到小return n2-n1
            });
            
            for(var i=0;i<arr.length;i++)
            {
                oTab.tBodies[0].appendChild(arr[i]);
            }
        };
    };
    </script>
    </head>
    
    <body>
    <input id="btn1" type="button" value="排序" />
    <table id="tab1" border="1" width="500">
        <thead>
            <td>ID</td>
            <td>姓名</td>
            <td>年龄</td>
            <td>操作</td>
        </thead>
        <tbody>
            <tr>
                <td>2</td>
                <td>张三</td>
                <td>23</td>
                <td></td>
            </tr>
            <tr>
                <td>6</td>
                <td>王四</td>
                <td>24</td>
                <td></td>
            </tr>
            <tr>
                <td>1</td>
                <td>Blue</td>
                <td>27</td>
                <td></td>
            </tr>
            <tr>
                <td>5</td>
                <td>张伟</td>
                <td>24</td>
                <td></td>
            </tr>
            <tr>
                <td>3</td>
                <td>李四</td>
                <td>28</td>
                <td></td>
            </tr>
            <tr>
                <td>4</td>
                <td>王五</td>
                <td>25</td>
                <td></td>
            </tr>
        </tbody>
    </table>
    </body>
    </html>
    View Code
  • 相关阅读:
    HDFS的工作流程分析
    linux文本分析利器awk
    二叉树遍历
    tomcat 工作原理简析
    徐汉彬:Web系统大规模并发——电商秒杀与抢购
    牛人博客 列表
    消息队列 概念 配合SpringBoot使用Demo
    Redis 实例排除步骤
    Java分布式 一些概念理解
    消息成功失败回调demo
  • 原文地址:https://www.cnblogs.com/Xuman0927/p/6027604.html
Copyright © 2011-2022 走看看