• 代码-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/]
  • 相关阅读:
    赫尔维茨公式
    从解析几何的角度分析二次型
    Struts 1 Struts 2
    记一次服务器被入侵的调查取证
    契约式设计 契约式编程 Design by contract
    lsblk df
    Linux Find Out Last System Reboot Time and Date Command 登录安全 开关机 记录 帐号审计 历史记录命令条数
    Infrastructure for container projects.
    更新文档 版本控制 多版本并发控制
    Building Microservices: Using an API Gateway
  • 原文地址:https://www.cnblogs.com/phpisfirst/p/9819134.html
Copyright © 2020-2023  润新知