以Table表为框架,在HTML中实现数据列的添加,删除,查找功能

  在学习Javascript的过程中,首先遇到的便是对对象数据类型和对象函数的理解不够清晰透彻。这个需要的就只是多实践,写代码的时候仔细脑际每一个变量被赋予的数据类型和对象。

  在这次实践中对该Table实现的功能有:隔行变色,列的添加和删除(子节点),鼠标移入移出变色事件,关键字查找,分类具体查找,关键字模糊查找,多关键字查找。

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Table操作</title>
<script>
window.onload=function()
{
    var oTab=document.getElementById(‘tab1‘);
    var oTr=oTab.tBodies[0].getElementsByTagName(‘tr‘);
    var oName=document.getElementById(‘name‘);
    var oAge=document.getElementById(‘age‘);
    var oSign=document.getElementById(‘sign‘);
    var oBtn=document.getElementById(‘btn‘);
    var bColor=‘‘;
    var bRank=oTab.tBodies[0].rows.length+1;
    /*alert(oTd.length);*/

    /*创建删除列*/
    oBtn.onclick=function()
    {
        var oNewTr=document.createElement(‘tr‘);

        var oNewRank=document.createElement(‘td‘);
        oNewRank.innerHTML=bRank++;
        oNewTr.appendChild(oNewRank);

        var oNewName=document.createElement(‘td‘);
        oNewName.innerHTML=oName.value;
        oNewTr.appendChild(oNewName);

        var oNewAge=document.createElement(‘td‘);
        oNewAge.innerHTML=oAge.value;
        oNewTr.appendChild(oNewAge);

        var oNewSign=document.createElement(‘td‘);
        oNewSign.innerHTML=oSign.value;
        oNewTr.appendChild(oNewSign);

        var oNewDel=document.createElement(‘td‘);
        oNewDel.innerHTML=‘<a href="javascript:;">删除</a>‘;
        oNewTr.appendChild(oNewDel);
        /*新建行外观设置*/
        oNewTr.onmouseover=function()
        {
            bColor=this.style.background;/*为什么用this可以,而用oTr[i]不行?*/
            this.style.background="#FF0";
        };
        oNewTr.onmouseout=function()
        {
            this.style.background=bColor;
        };
        if(bRank%2)
        {
            oNewTr.style.background="#FF9";
        }
        else
        {
            oNewTr.style.background="";
        }

        oNewTr.getElementsByTagName(‘a‘)[0].onclick=function()
        {
            oTab.tBodies[0].removeChild(this.parentNode.parentNode);
        };
        /*oTab.getElementsByTagName(‘body‘).appendChild(oNewTr);*/
        oTab.tBodies[0].appendChild(oNewTr);
    };
    for(var i=0;i<oTr.length;i++)
    {
        oTr[i].onmouseover=function()
        {
            bColor=this.style.background;/*为什么用this可以,而用oTr[i]不行?*/
            this.style.background="#FF0";
        };
        oTr[i].onmouseout=function()
        {
            this.style.background=bColor;
        };
        if(i%2)
        {
            oTr[i].style.background="#FF9";
        }
        else
        {
            oTr[i].style.background="";
        }
        oTr[i].getElementsByTagName(‘a‘)[0].onclick=function()
        {
            oTab.tBodies[0].removeChild(this.parentNode.parentNode);
        };
    }

    /*搜索列*/
    var oBse=document.getElementById(‘bse‘);
    oBse.onclick=function()
    {
        var RankCol=‘‘;
        var oTse=document.getElementById(‘search‘);
        var oSe=document.getElementById(‘sel‘);
        var oHtd=oTab.getElementsByTagName(‘thead‘)[0].getElementsByTagName(‘tr‘)[0].getElementsByTagName(‘td‘);
        var Sindex =oSe.selectedIndex; // 选中索引
        var Stext =oSe.options[Sindex].text; // 选中文本
        /*alert(oHtd[0].innerHTML);*/
        for(var i=0;i<oHtd.length;i++)
        {
            if(oHtd[i].innerHTML==Stext)
            {
                RankCol=i;
                break;
            }

        }
        /*alert(oTab.tBodies[0].rows[2].cells[RankCol].innerHTML)*/
        /*alert(oTse.value.toLowerCase());*/
        for(var i=0;i<oTab.tBodies[0].rows.length;i++)
        {
            var str1=oTab.tBodies[0].rows[i].cells[RankCol].innerHTML.toLowerCase();
            var str2=oTse.value.toLowerCase();
            var arr=str2.split(‘ ‘);
            for(var j=0;j<arr.length;j++)
            {
                var t=str1.indexOf(arr[j]);
                if(t!=-1)
                {
                    oTab.tBodies[0].rows[i].style.background="#FF0";
                }
            }

        }
    };
};
</script>
</head>

<body>
姓名:<input type="text" id="name"/>
年龄:<input type="text" id="age"/>
签到:<input type="text" id="sign"/>
<input type="button" id="btn" value="创建" /><br />
关键字:<input type="text" id="search" />
分类:
<select id="sel">
    <option value="rank">编号</option>
    <option value="name" selected="selected">姓名</option>
    <option value="age">年龄</option>
    <option value="sign">签到</option>
</select>
<input type="button" id="bse" value="搜索" />
<span style="font-size:12px;color:#999;font-family:Arial, Helvetica, sans-serif;">    //搜索结果高亮显示,可忽略大小写,字符串模糊匹配搜索</span><br />
<table id="tab1" border="1" style="border:1px solid #3FC;width:400px; height:35px; margin-top:200px;">
    <thead>
        <tr>
            <td >编号</td>
            <td >姓名</td>
            <td >年龄</td>
            <td >签到</td>
            <td>操作</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>王大</td>
            <td>23</td>
            <td>17</td>
            <td><a href="javascript:;">删除</a></td>
        </tr>
        <tr>
            <td>2</td>
            <td>李二</td>
            <td>18</td>
            <td>21</td>
            <td><a href="javascript:;">删除</a></td>
        </tr>
        <tr>
            <td>3</td>
            <td>张三</td>
            <td>25</td>
            <td>23</td>
            <td><a href="javascript:;">删除</a></td>
        </tr>
        <tr>
            <td>4</td>
            <td>刘四</td>
            <td>35</td>
            <td>18</td>
            <td><a href="javascript:;">删除</a></td>
        </tr>
    </tbody>
</table>
</body>
</html>
时间: 2024-08-02 11:17:34

以Table表为框架,在HTML中实现数据列的添加,删除,查找功能的相关文章

delete表1条件是另一个表中的数据,多表连接删除(转)

DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释:1. delete from t1 where 条件2.delete t1 from t1 where 条件3. delete t1 from t1,t2 where 条件4.delete t1,t2 from t1,t2 where 条件前 3者是可行的,第4者不可行.也就是简单用delete语句无法进行多表删除数据操作,不过可以建立级联删除,在两个表之间建立级联删除关系,则可以实现删除一个表的数据时,同时删除另

python中的数据写入与添加数据写入

很多情况下,大家可能会遇到相同情况,就是现在有一些数据需要保存在某个文件里面,但是后续会不断更新添加新的数据,例如在爬虫的时候,一页一页爬取数据的时候,当然可以将所有页数据先合并到一起,再保存起来,但是也可以通过下文这种方式,输出一页的数据就保存一次,好像有点麻烦哈,但是如果是其他情况的话,可能就会便捷一点,例如数据更新不是很快这种情况等等. 1.引入模块 1 import os #获取当前工作路径 2 import pandas as pd #将数据保存至相应文件中 2.将数据保存至制定文件下

SqlSever基础 insert 给一个数据库中的表中的一个列一次性添加多行数据

1 code 1 --select * from sysdatabases 2 3 --指定数据库 4 use helloworld 5 --查看该数据库中的Teacher表格列有哪几个 6 select * from Teacher 7 -- 向 teacher表格中的ShengHao一次加入两行数据 8 insert into Teacher(ShengHao) 9 values('女娲娘娘'), 10 ('无盐娘娘') 11 2 show

当SD卡中的数据不小心被删除了该怎么找回的技巧攻略

如今,SD卡越来越普及,硬盘早已不是存储文件的唯一工具,相机,手机,摄像机等数码产品皆凭借SD卡存储照片.视频,毫不夸张地讲人们生活的很多珍贵瞬间都保存在SD卡当中.然而,当我们用SD卡的过程中,有时会遇到棘手问题,也许昨天可以正常使用SD卡,今天就无法打开了.在这种时候,大部分人的脑子里的第一念头就是,SD卡里面的数据岂不就丢失了? 还能找回来? 可以恢复那些珍贵的音频图文和机要文件吗? 在这种情况之下,大家最好寻找高效而安全的文件恢复方法,把已经丢失的信息数据给找回来. 造成SD卡数据丢失的

powerdesign 下ER模型中展示数据注释中文列

工作三年了,如果说对于数据库不敏感,我觉得的无论是作为一个前端开发人员还是后端开发人员来说,跟别人说你是个软件开发人员,我觉得都有点惭愧.可能之前一直在关注数据库sql的编写等等,但是现在我觉得有必要升华一下了,下面我就我遇到的问题,向大家提供一个解决方案,可能不是最好的,但是当实现了这个效果后,我真的眼前一亮,在此分享给大家...... 软件环境:powerdesign16.5 + win64(64位系统下,由于jdk的版本,powerdesign软件运行不正常,这个我安装jdk1.6_x86

oracle中的数据集合操作

一.数据更新操作 DML语法中主要包括两个内容:查询与更新,更新主要包括:增加数据.修改数据.删除数据.其中这些操作是离不开查询的.         1.增加数据 语法:INSERT INTO 表名称 [(字段名称1, 字段名称2,-)] VALUES(数据1,数据2-..): 注意:     1.对于字符串需要使用""括起来     2.对于时间可以使用to_date()进行转换     3.数字就直接写 范例:向myemp表中插入一条数据 INSERT INTO myemp(emp

Java框架之SpringMVC 03-RequestMapping-请求数据-响应数据

SpringMVC SpringMVC是一种轻量级的.基于MVC的Web层应用框架. 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口. 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性. 优点: 1.天生与Spring框架集成,如:(IOC,AOP) 2.支持Restful风格 3.支持灵活的URL到页面控制器的映射 4.非常容易与其他视图技术集成,如:Velocity.FreeMarker等等 5.因为模型数据不存放在特定的API里,而是放在

JS~一个列表中包含上移下移删除等功能

最近做了一个项目,包括了一个列表页,为了用户体验,操作均使用JS实现,其中包括在列表中实现上移,下移,删除等功能,前台JS,后端数据修改使用AJAX,本文主要说一下前台JS这块 先看一下页面的截图 看一下它的HTML结构,当然,这与前台切图有关,后端程序人员只负责写自己的JS这块,我以我们项目为例,看一下它们切的HTML <ul class="clearfix"> <li class="courseList"> <div class=&

分布式服务框架 Zookeeper -- 管理分布式环境中的数据

安装和配置详解 Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等.本文将 从使用者角度详细介绍 Zookeeper 的安装和配置文件中各个配置项的意义,以及分析 Zookeeper 的典型的应用场景(配置文件的管理.集群管理.同步锁.Leader 选举.队列管理等),用 Java 实现它们并给出示例代码. 单机模式 单 机安装非常简单,只要获取