• 一道DOM操作题


    创建一个表格,表头为姓名,性别,年龄,班级

    1. 点击单元格内的内容,弹窗输入值,修改单元格内原有数据;

    2. 设置加粗,标红按钮,在修改完单元格内容后显示按钮并能够对修改的内容进行样式改变;

    3. 设置添加按钮,点击添加一行新的单元格(4个);

    代码如下:

     1 <!doctype html>
     2 <html>
     3 <head>
     4 <meta charset="utf-8">
     5 <title>无标题文档</title>
     6 <style>//首先在head标签中设置了表格样式,以及两个按钮的隐藏
     7     td{
     8         height: 50px;
     9         text-align: center;
    10     }    
    11     table{
    12         margin: auto;
    13          80%;
    14     }
    15     .button{
    16         visibility: hidden;
    17     }
    18 </style>
    19 </head>
    20 
    21 <body>
    22 <script>
    23     var td_obj;//一个全局变量
    24 //第一个函数设置为点击弹窗修改内容,但其中包含了几条作用于其他函数的设置,多个函数之间相互都有关联
    25     function one(obj){
    26         td_obj = obj;//此行为加粗标红按钮设置,使这两个按钮只对当前修改的单元格内容起效
    27         obj.innerHTML = prompt("");//弹窗
    28         //obj.setAttribute("abc","q"); //给所有td标签一个自定义属性,为了实现标红加粗两个按钮的功能而设置,是另一种方法,下文中被注释掉的代码
    29         document.getElementById("bold").style.visibility = "visible";//点击修改后显示两个按钮
    30         document.getElementById("red").style.visibility = "visible";
    31 
    32     }
    33 //第二个函数设置为添加单元格
    34     function two(){
    35         var a = document.getElementById("table");//获取表格元素
    36         var b = document.createElement("tr");//获取行元素
    37         //4个单元格利用for循环循环添加,使一行中有4个单元格
    38         for(i=0;i<4;i++){
    39             var c = document.createElement("td");//创建单元格
    40             c.setAttribute("onClick","one(this)")//赋予单元格onClick属性以及调用的函数
    41             b.appendChild(c);//将创建的单元格追加至行            
    42         }
    43         a.appendChild(b);//将循环完成的行添加至表格
    44     }
    45     //第三个函数设置加粗标红按钮的样式
    46     function three(obj){
    47         td_obj.style.fontWeight = "bold";//全局变量作用于此行
    48         obj.style.visibility = "visible";//完成加粗后按钮消失
    49 //下面被注释掉的代码是另一种方法,比较麻烦,上面的是老师带着他的高级装备打怪的战利品 - -!
    50 //        var a =   document.getElementsByTagName("td"); //get到所有td中的内容
    51 //        for(i=0;i<a.length;i++){                       //利用for循环查找所有包含自定义属性abc的td标签
    52 //            var aa = a[i].getAttribute("abc");
    53 //            if(aa == "q"){                             //如果这个变量的值 == 自定义属性abc的值q,则执行加粗变化
    54 //                a[i].style.fontWeight = "bold";
    55 //                a[i].removeAttribute("abc");      //为了使加粗不会将所有的td内容改变,删除已被修改内容的td标签的自定义属性abc,使abc属性始终唯一的存在与一个td标签中          
    56 //            }
    57 //        }    
    58     }
    59     function four(obj){
    60             td_obj.style.color = "red";
    61 //        //obj.style.visibility = "visible";
    62 //        var a = document.getElementsByTagName("td");
    63 //        for(i=0;i<a.length;i++){
    64 //            var aa = a[i].getAttribute("abc");
    65 //            if(aa == "q"){
    66 //                a[i].style.color = "red";
    67 //                a[i].removeAttribute("abc");
    68 //            }
    69 //        }
    70     }
    71 </script>
    72 <button onClick="two()">添加</button>
    73 <button class="button" id="bold" onClick="three(this)">加粗</button>
    74 <button class="button" id="red" onClick="four(this)">标红</button>
    75 <table id="table" border="1" cellspacing="0">
    76     <tr>
    77         <td>姓名</td>
    78         <td>性别</td>
    79         <td>年龄</td>    
    80         <td>班级</td>
    81     </tr>
    82     <tr>
    83         <td onClick="one(this)">张三</td>
    84         <td onClick="one(this)">男</td>
    85         <td onClick="one(this)">15</td>    
    86         <td onClick="one(this)">101</td>
    87     </tr>
    88 </table>
    89 </body>
    90 </html>            

    总结:1、3两个题目是自己想出来的,写的也挺冗余,但是思路还算清晰,没有费时太久,第2个题目是一点想法都没有,在老师指导下,获取所有td中的值传给两个按钮并实现了题目要求

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 王后传说
    Java实现 蓝桥杯VIP 算法训练 王后传说
    Java实现 蓝桥杯VIP 算法训练 特殊的数字四十
    win7桌面图标小盾牌怎么去掉(2种方法)
    使用GO语言灵活批量ssh登录服务器执行操作
    2016 Web 开发资源工具大搜罗
    sqlite的源代码加密,以及其它一些文章
    SQLite 对中文路径的支持(用到了StringToWideChar和Utf8Encode在D7的System单元中自带)
    AMD规范与CMD规范的区别
    值类型和引用类型、可空类型、堆和栈、装箱和拆箱
  • 原文地址:https://www.cnblogs.com/wangqun1234/p/7680867.html
Copyright © 2020-2023  润新知