• 代码-JS之可更改的表


    效果:
    在这里插入图片描述

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <!--引入JS和CSS文件-->
        <link rel="stylesheet" href="css/editTable.css">
        <script src="js/editTable.js"></script>
    </head>
    <body>
    <!--编写HTML-->
        <table>
            <thead>
                <tr>
                    <th>ID</th>
                    <th>姓名</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>1</td>
                    <td>乐进</td>
                </tr>
                <tr>
                    <td>2</td>
                    <td>张辽</td>
                </tr>
                <tr>
                    <td>3</td>
                    <td>张郃</td>
                </tr>
                <tr>
                    <td>4</td>
                    <td>于禁</td>
                </tr>
                <tr>
                    <td>5</td>
                    <td>徐晃</td>
                </tr>
            </tbody>
        </table>
    </body>
    </html>
    
    //编写JS
    // 1.页面载入事件
    window.onload = function (){
        // 2.隔行换肤
        var tbody = document.getElementsByTagName('tbody')[0];
        var trs = tbody.getElementsByTagName('tr');
        // 3.获取所有td
        var tds = [];
        for(var i=0; i<trs.length; i++){
            tds.push(trs[i].children[1]);
            if(i%2 == 0){
                trs[i].style.backgroundColor='pink';
            }else{
                trs[i].style.backgroundColor='skyblue';
            }
        }
        // console.log(tds);
        // 4.绑定单击事件
        for(var i=0; i<tds.length; i++){
            tds[i].onclick=function(){
                var td =this;
                // 1.设置单input
                if(td.children.length >=1 ){
                    return false;
                }
                // 2.获取td里的值
                var text = td.innerHTML;
                td.innerHTML='';
                // 3.创建input
                var input = document.createElement('input');
                // 4.给input样式
                input.style.width = getStyle(td, 'width');
                input.style.height = getStyle(td, 'height');
                input.style.outline = '0 none';
                input.style.fontSize = getStyle(td, 'fontSize');
                input.style.backgroundColor = getStyle(td, 'backgroundColor');
                this.appendChild(input);
                // 5.给input赋值
                input.value = text;
                // 6.获取焦点
                input.focus();
    
                // 7.绑定键盘事件
                input.onkeyup = function(evt){
                    var e = window.event || evt;
                    // 1.获取键盘事件
                    var keycode = e.keyCode;
                    // 2.13是回车,27是esc
                    if(keycode == 13){
                        td.innerHTML = this.value;
                    }
                    if(keycode == 27){
                        td.innerHTML = text;
                    }
                }
            };
        }
    };
    
    //为了兼容各个浏览器,所以封装一个获取样式的函数
    function getStyle(element, styleName){
        if(element.currentStyle){
            //说明是IE浏览器
            return element.currentStyle[styleName]; // 变量不能用于对象的属性,所以这里必须使用方括号的形式
        }else{
            //说明是非IE浏览器
            return getComputedStyle(element)[styleName]; // 变量不能用于对象的属性,所以这里必须使用方括号的形式
        }
    }
    
    
    *{
        /*编写CSS*/
        margin:0;
        padding:0;
        border:0 none;
    }
    table,th,td{
        border:solid 1px #000;
        border-collapse:collapse;
    }
    table{
        width:400px;
        margin:10px auto;
    }
    th,td{
        width:50%;
        padding:3px;
    }
    
    Copyright [2018] by [羊驼可以吃吗] form [https://www.cnblogs.com/phpisfirst/]
  • 相关阅读:
    AIX 第3章 指令记录
    AIX 第2章 指令记录
    Oracle Exadata体系笔记
    决定undo表空间的大小
    摘录:官方文档对ROWID虚拟行的定义
    ORA-01102 cannot mount database in EXCLUSIVE mode
    居民身份证号码含义
    ORA-00257错误
    微机原理之 输入输出与中断
    操作系统总结之 输入输出系统(下)
  • 原文地址:https://www.cnblogs.com/phpisfirst/p/9819134.html
Copyright © 2020-2023  润新知