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

  看着网上的视频教程,虽说还是有点简单,但还是不免想记录下。这些操作包括(隔行变色,高亮显示,添加删除,搜索功能),而这儿就是涉及table的原有属性“tBodies” “rows” “cells”等几个方法,search方法,

split方法等等

  效果体验:http://runjs.cn/detail/vm8bz8dl

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
window.onload = function(){
    var tb = document.getElementById(‘tb‘);
    //alert(tb.getElementsByTagName(‘tbody‘)[0].getElementsByTagName(‘tr‘)[1].getElementsByTagName(‘td‘)[1].innerHTML);
    //alert(tb.tBodies[0].rows[1].cells[1].innerHTML);

    //表格隔行变色和鼠标滑过高亮
    var oldColor = ‘‘; //保存原有的背景色
    for (var i=0;i<tb.tBodies[0].rows.length;i++) {
        tb.tBodies[0].rows[i].style.background = i%2 ? ‘#CCC‘: ‘‘;

        tb.tBodies[0].rows[i].onmouseover = function(){
            oldColor  = this.style.background;
            this.style.background = ‘yellow‘;
        }

        tb.tBodies[0].rows[i].onmouseout = function(){
            this.style.background = oldColor;
        }
    };

    //添加和删除
    var oBtn = document.getElementById(‘btn1‘);
    var oTxt = document.getElementById(‘txt1‘);
    var iNowId =  tb.tBodies[0].rows.length+1;
    oBtn.onclick = function(){
        var oTr = document.createElement(‘tr‘);
        var oTd = null;

        oTd = document.createElement(‘td‘);
        oTd.innerHTML = iNowId++;
        oTr.appendChild(oTd);

        oTd  = document.createElement(‘td‘);
        oTd.innerHTML = oTxt.value;
        oTr.appendChild(oTd);

        oTd = document.createElement(‘td‘);
        oTd.innerHTML =‘<a href="javascript:void(0);">删除</a>‘;
        oTr.appendChild(oTd);

        oTd.getElementsByTagName(‘a‘)[0].onclick = function(){
            tb.tBodies[0].removeChild(this.parentNode.parentNode);
        }

        tb.tBodies[0].appendChild(oTr);
    }

    //搜索功能(应该算是精确搜索)
    var oBtn2 = document.getElementById(‘btn2‘);
    var oTxt2 = document.getElementById(‘txt2‘);
    oBtn2.onclick=function(){
        for(var i=0;i<tb.tBodies[0].rows.length;i++){
            var sValueInTb = tb.tBodies[0].rows[i].cells[1].innerHTML.toLowerCase();
            var sValueInTxt = oTxt2.value.toLowerCase().split(‘ ‘);
            if(sValueInTb==sValueInTxt){
                tb.tBodies[0].rows[i].style.background = ‘red‘;
            }
            else{
                tb.tBodies[0].rows[i].style.background = ‘‘;
            }
        }
    }

    //试试
    var str = ‘aaa blue‘;
    var arr = str.split(‘ ‘);

    var str2 = ‘aaa is a person‘;
    var sFound = false;
    for(var i=0;i<arr.length;i++){
        if(str2.search(arr[i])!=-1){
            sFound = true;
        }
    }
    alert(sFound);

    //搜索功能(模糊查询)
    var oBtn3 = document.getElementById(‘btn3‘);
    var oTxt2 = document.getElementById(‘txt2‘);
    oBtn3.onclick=function(){
        for(var i=0;i<tb.tBodies[0].rows.length;i++){
            var sValueInTb = tb.tBodies[0].rows[i].cells[1].innerHTML.toLowerCase();
            var sValueInTxt = oTxt2.value.toLowerCase().split(‘ ‘);
            var sFound = false;
            for(var j=0;j<sValueInTxt.length;j++){
                if(sValueInTb.search(sValueInTxt[j])!=-1){
                    sFound = true;
                    break;
                }
            }
            if(sFound){
                tb.tBodies[0].rows[i].style.background = ‘red‘;
            }
            else{
                tb.tBodies[0].rows[i].style.background = ‘‘;
            }

        }
    }

}
</script>
</head>

<body>
    <input type="text" id="txt1">
    <input type="button" id="btn1" value="添加">
    <input type="text" id="txt2">
    <input type="button" id="btn2" value="精确搜索"><input type="button" id="btn3" value="模糊搜索">
    <table border="1" width="450" id="tb">
        <thead>
            <Tr>
                <Td>ID</Td>
                <Td>姓名</Td>
                <Td>操作</Td>
            </Tr>
        </thead>
        <tbody>
            <tr>
                <Td>1</Td>
                <Td>abe</Td>
                <Td></Td>
            </tr>
            <tr>
                <Td>2</Td>
                <Td>a春春</Td>
                <Td></Td>
            </tr>
            <tr>
                <Td>3</Td>
                <Td>b一流</Td>
                <Td></Td>
            </tr>
            <tr>
                <Td>4</Td>
                <Td>贰万</Td>
                <Td></Td>
            </tr>
            <tr>
                <Td>5</Td>
                <Td>aaa</Td>
                <Td></Td>
            </tr>
            <tr>
                <Td>6</Td>
                <Td>blue</Td>
                <Td></Td>
            </tr>
        </tbody>
    </table>
</body>
</html>
时间: 2024-12-06 07:09:58

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

js实现隔行变色-------Day40

就这样开始了自己的第二个项目,业绩员考评系统,一进入项目组,首先要开始的,又是这痛苦的界面设计,完全不能改变现有的模板,只能在现有基础上进行发挥,我可怜的审美在这狭小的空间里突然就这样无能为力了,好吧,总有些地方还是需要加些效果的,像这种隔行变色,不就很实用嘛. table在这个div+css肆虐的时代有些没落了,但是碰到多列数据显示时,它仍旧有着无法比拟的方便,我们先简单写下一个来 <table id="tb" width="900px;" border=&

JS实现隔行变色,鼠标移入高亮

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; min-height: 36.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #d74200 } p.p4 {

原生js操作dom的方法

今天学习了原生js的dom节点的操作,就记录下来,仅供自己以后参考. 1)创建节点:除了可以使用createElement创建元素,也可以使用createTextNode创建文本节点. document.body指向的是<body>元素;document.documentElement则指向<html>元素 //创建节点    var createNode = document.createElement("div");    var createTextNod

原生js操作DOM基础-笔记

原文参考http://mp.weixin.qq.com/s?__biz=MzU3MDA0NTMzMA==&mid=2247485490&idx=1&sn=15197b4b53e0669e4a017e54a31fb39c&source=41#wechat_redirect 使用原生js为了提高效率,纯js操作dom一 查询DOMdocument.querySelector()参数是任意css选择器格式,只会返回第一个匹配到值document.querySelectorAll(

原生Js操作DOM

查找DOM .querySelectorAll(),它接受包含一个CSS选择器的字符串参数,返回一个表示文档中匹配选择器的所有元素的NodeList元素. .querySelector(),返回第一个匹配的元素 <div class="wrap"> <div class="header">header</div> </div> <script> var oHeader = document.querySel

原生js操作dom的总结

一.学习DOM之前需要知道的 1.什么是window? window:是一个全局对象, 代表浏览器中一个打开的窗口, 每个窗口都是一个window对象 2.什么是document? document是window的一个属性, 这个属性是一个对象 document: 代表当前窗口中的整个网页, document对象保存了网页上所有的内容, 通过document对象就可以操作网页上的内容 3.什么是DOM? DOM 定义了访问和操作 HTML文档(网页)的标准方法 DOM全称: Document O

原生js操作HTML DOM

先上图 1.一些常用的方法 obj.getElementById() 返回带有指定 ID 的元素. obj.getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组). obj.etElementsByClassName() 返回包含带有指定类名的所有元素的节点列表. obj.getElementsByName() 方法可返回带有指定名称的对象的集合.//表单中name还是蛮多的 node.childNodes 只读  childNodes 属性

原生js操作option

1 <script type="text/javascript"> 2 // 1.动态创建select 3 function createSelect() { 4 var mySelect = document.createElement("select"); 5 mySelect.id = "mySelect"; 6 document.body.appendChild(mySelect); 7 } 8 9 //2.添加选项optio

原生JS操作class 极致版

// 获取class function getClass(el) { return el.getAttribute('class') } // 设置class function setClass(el, cls) { return el.setAttribute('class', cls) } // 当然彩蛋压轴戏肯定是在最后的啦 // 判断class是否存在 function hasClass(elements, cName) { return !!elements.className.mat