js table的笔记,实现添加 td,实现搜索功能

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<script>
    window.onload=function()
    {
        var oTab=document.getElementById("tab1");
        // alert(oTab.getElementsByTagName("tbody")[0].getElementsByTagName(‘tr‘)[1].getElementsByTagName(‘td‘)[1].innerHTML);
        // //表格可以简便写成下面的
        // alert(oTab.tBodies[0].rows[1].cells[1].innerHTML);
        //
        //
        // 隔行变色
        for(var i=0;i<oTab.tBodies[0].rows.length;i++)
        {
            var col1=‘‘;  //储存当前标题栏的颜色
            oTab.tBodies[0].rows[i].onmouseover=function()
            {
                col1=this.style.background;  //先把当前的颜色存储起来
                this.style.background="red";  //当移动到其中的td标签上显示红色
            }
            oTab.tBodies[0].rows[i].onmouseout=function()//当离开td时候,变回原来的颜色
            {
                this.style.background=col1;
            }
            if (i%2)//隔行变色
            {
                oTab.tBodies[0].rows[i].style.background="#ccc";
            }
            else
            {
                 oTab.tBodies[0].rows[i].style.background="";
            }
        }

  //增加一个li
        var name =document.getElementById("name");
        var age =document.getElementById("age");
        var add=document.getElementById("btn");
         var num=oTab.tBodies[0].rows.length+1;//先增加row 的长度
        add.onclick=function()
        {

            var newRow= document.createElement("tr");  //增加新的一行
            var newCell0=document.createElement("td");  //增加新的一列
            newCell0.innerHTML=num++;
            newRow.appendChild(newCell0);

            var newCell1=document.createElement("td");  //再增加一列
            newCell1.innerHTML=name.value;              //text上的值
            newRow.appendChild(newCell1);

            var newCell2=document.createElement("td");   //再增加一列
            newCell2.innerHTML=age.value;              //text的值
            newRow.appendChild(newCell2);

            var newCell3=document.createElement("td");     //增加一列
            newCell3.innerHTML="<a href=‘javascript:;‘>删除</a>";    //加入删除标签
            newRow.appendChild(newCell3);

            oTab.tBodies[0].appendChild(newRow);  // 把这行放入body上

            newCell3.getElementsByTagName("a")[0].onclick=function()   //当点解删除标签删除tr节点
            {
                oTab.tBodies[0].removeChild(this.parentNode.parentNode);  //this为a标签 this.parentNode为td   this.parentNode.parentNode为tr
            }
        }

        //搜索功能
        var oTex=document.getElementById("search1");
        var oBtn=document.getElementById("btn2");

        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 sTex=oTex.value.toLowerCase();  //用户输入的值并转化成小写
                var arr=sTex.split(‘ ‘);//如果用户用空格隔开关键字

                oTab.tBodies[0].rows[i].style.background=‘‘;//把所有的背景都设置为空
                //如果刷选,把css换成block显示就行

                for(var j=0;j<arr.length;j++)
                {
                    if (sTab.search(arr[j])!=-1)  //调用search函数查找截取出来的字符数组,判断是否存在,
                    {
                        oTab.tBodies[0].rows[i].style.background="yellow";//存在改变td的颜色
                    }

                }
            }
        }

    };
</script>

</head>
<body>
姓名:<input type="text" id="name">
年龄:<input type="text" id="age">
<input type="button" value="add" id="btn"/>

<table border="1" width="500px" id="tab1">
    <thead>
        <td>ID</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>操作</td>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>Bule</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>25</td>
            <td></td>
        </tr>
    </tbody>
</table>
搜素姓名:<input type="text" id="search1" />
<input type="button" value="搜素" id="btn2" />

</body>
</html>
时间: 2024-10-20 08:36:49

js table的笔记,实现添加 td,实现搜索功能的相关文章

JS实现带导航城市列表以及输入搜索功能

实现功能: 1.加载城市列表,并生成索引(没有该索引的城市则无索引) 2.点击索引滚动页面到对应索引城市第一个位置 3.输入搜索 分析: 1.加载城市很容易,生成对应的索引. 首先需要得到所有的城市,然后拿出城市的首字母,放入一个数组中,去重并排序, 得到无重复并有序的索引数组后加入到div中显示 2.根据索引进行页面滚动 需要给索引列表添加事件,由于锚点会在链接产生带#号的地址,以及页面会有刷动的效果,索引这里不使用锚点, 因此这里使用jquery或者js的方法进行页面自行滚动 3.进行搜索

表格的一些原生js操作(隔行变色,高亮显示,添加删除,搜索)

看着网上的视频教程,虽说还是有点简单,但还是不免想记录下.这些操作包括(隔行变色,高亮显示,添加删除,搜索功能),而这儿就是涉及table的原有属性“tBodies” “rows” “cells”等几个方法,search方法, split方法等等 效果体验:http://runjs.cn/detail/vm8bz8dl <!doctype html> <html> <head> <meta charset="utf-8"> <tit

js 的 总结 笔记

js 的 总结 笔记 一.词法结构 1.区分大小写 2.注意 // 单行 /* 多行注释 */ 3.字面量(直接量 literal) 12 //数字 5.8 // 小数 "hello" 'hello' true /js/gi //正则 null //空 {x:1,y:2} [1,2,3,4] 4.标示符(变量)和保留字 5.分号可以省略但是可能会产生问题,js会自动补; var y = x+f (a+b).toString() 等价于 var y = x+f(a+b).toString

0417 js节点操作表格(添加、删除)

节点创建和追加 节点创建 元素节点:document.createElement(tag标签名称); 文本节点:document.createTextNode(文本内容); 属性设置:node.setAttribute(名称,值); 节点追加: 父节点.appendChild(子节点); 父节点.insertBefore(newnode,oldnode); //newnode放到oldnode的前边 父节点.replaceChild(newnode,oldnode); //newnode替换到o

web前端利用vue.js实现品牌列表的添加,删除与筛选功能

实现效果图: 实现功能:web前端利用vue.js实现品牌列表的添加,删除与筛选功能 实现代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> &l

【锋利的JQuery-学习笔记】添加提示图片

效果图: hot图片: (注意:这个图标本身就有抖动效果的,并不是由于标签<del>而具有抖动效果) 周期性抖动,起到提示的作用 html: <div class="jnCatainfo"> <h3>推荐品牌</h3> <ul> <li><a href="#nogo" >耐克</a></li> <li><a href="#nogo&

ie6/7下给table的行tr 添加position:relative;的奇特bug,求大神告知

代码: <!DOCTYPE html> <html> <head> <title>ie6/7下给table的行tr 添加position:relative;的奇特bug,求大神告知</title> <style> * { padding: 0; margin: 0; } table tr { position: relative;float:left;overflow:hidden;z-index:1;height:100%;widt

Win8 HTML5与JS编程学习笔记(二)

近期一直受到win8应用的Grid布局困扰,经过了半下午加半个晚上的奋斗,终于是弄明白了Grid布局方法的规则.之前我是阅读的微软官方的开发教程,书中没有详细说明CSS3的布局规则,自己鼓捣了半天也是一头雾水,于是又找到了官方的启蒙教程的布局一张,仔细阅读了一遍,又思考了代码,并在代码的基础上实验,终于是明白了布局方法.官方教程地址是:http://msdn.microsoft.com/zh-cn/library/windows/apps/jj841108.aspx 微软基于CSS3开发了Gri

table 中 文字长度大于td宽度,导致文字换行 解决方案

1.TD不换行 nowrap属性 表格table的td单元格中,文字长了往往会撑开单元格,但是如果table都不够宽了,就换行了好像(不要较真其他情况,我只说会换行的情况).换行后的表格显得乱糟糟,不太好看,我不喜欢这样的换行.当然可以通过对每列td都设置宽度,那样太麻烦了,并且有时没法预计td中的文字会有多长,没法给固定宽度. 为了让表格里文字不换行(预计也不会太长的字符串),可以给表格里td添加一个nowrap属性,如 <td nowrap>文字内容</td> 这样. 但是如果