06.DOM操作应用高级

获取表格
tBodies、tHead、tFoot、
rows获取行  cells获取td
隔行变色

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
window.onload=function ()
{
    var oTab=document.getElementById('tab1');
    var oldColor='';
    
    for(var i=0;i<oTab.tBodies[0].rows.length;i++)
    {
        //鼠标移入
        oTab.tBodies[0].rows[i].onmouseover=function ()
        {
            oldColor=this.style.background;//表格每行原来的颜色
            this.style.background='green';
        };
        //鼠标移除
        oTab.tBodies[0].rows[i].onmouseout=function ()
        {
            this.style.background=oldColor;
        };
        //隔行变色
        if(i%2)
        {
            oTab.tBodies[0].rows[i].style.background='';
        }
        else
        {
            oTab.tBodies[0].rows[i].style.background='#CCC';
        }
    }
};
</script>
</head>

<body>
<table id="tab1" border="1" width="500">
    <thead>
        <td>ID</td>
        <td>姓名</td>
        <td>年龄</td>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>Blue</td>
            <td>27</td>
        </tr>
        <tr>
            <td>2</td>
            <td>张三</td>
            <td>23</td>
        </tr>
        <tr>
            <td>3</td>
            <td>李四</td>
            <td>28</td>
        </tr>
        <tr>
            <td>4</td>
            <td>王五</td>
            <td>25</td>
        </tr>
        <tr>
            <td>5</td>
            <td>张伟</td>
            <td>24</td>
        </tr>
    </tbody>
</table>
</body>
</html>
View Code

表格的添加删除

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
window.onload=function ()
{
    var oTab=document.getElementById('tab1');
    
    var oBtn=document.getElementById('btn1');
    var oName=document.getElementById('name');
    var oAge=document.getElementById('age');
    var id=oTab.tBodies[0].rows.length+1;
    
    oBtn.onclick=function ()
    {
        var oTr=document.createElement('tr');//创建行
        
        var oTd=document.createElement('td');//创建第一个td用于id
        oTd.innerHTML=id++;    //?
        oTr.appendChild(oTd);
        
        var oTd=document.createElement('td');//创建第二个td用于姓名
        oTd.innerHTML=oName.value;
        oTr.appendChild(oTd);
        
        var oTd=document.createElement('td');//创建第三个td用于年龄
        oTd.innerHTML=oAge.value;
        oTr.appendChild(oTd);
        
        var oTd=document.createElement('td');//创建第四个td用于删除操作
        oTd.innerHTML='<a href="javascript:;">删除</a>';
        oTr.appendChild(oTd);
        //删除操作添加事件
        oTd.getElementsByTagName('a')[0].onclick=function ()
        {
            oTab.tBodies[0].removeChild(this.parentNode.parentNode);//删除所在行
        };
        
        oTab.tBodies[0].appendChild(oTr);//给表格添加行
    };
};
</script>
</head>

<body>
姓名:<input id="name" type="text" />
年龄:<input id="age" type="text" />
<input id="btn1" type="button" value="添加" />
<table id="tab1" border="1" width="500">
    <thead>
        <td>ID</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>操作</td>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>Blue</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>24</td>
            <td></td>
        </tr>
    </tbody>
</table>
</body>
</html>
View Code

 表格搜索

搜索 版本1:基础版本——字符串比较
       版本2:忽略大小写——大小写转换
       版本3:模糊搜索——search的使用
       版本4:多关键词——split 高亮显示、筛选


toLowerCase()变成小写
toUpperCase()变成大写

例子:var str='ABC';   alert(str.toLowerCase());
search()
方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
例子:
var str='ABC';   alert(str.search('A'));   //弹出的是0
var str='ABC';   alert(str.search('B'));   //弹出的是1
var str='ABC';   alert(str.search('a'));   //弹出的是-1 如果没有找到任何匹配的子串,则返回 -1。
var str='ABC';   alert(str.search(/a/i));  //忽略大小写的搜索方法


<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
window.onload=function ()
{
    var oTab=document.getElementById('tab1');
    var oTxt=document.getElementById('name');
    var oBtn=document.getElementById('btn1');
    
    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 sTxt=oTxt.value.toLowerCase();
            
            var arr=sTxt.split(' ');
            
            oTab.tBodies[0].rows[i].style.display='none';
            
            for(var j=0;j<arr.length;j++)
            {
                if(sTab.search(arr[j])!=-1)
                {
                    oTab.tBodies[0].rows[i].style.display='block';
                }
            }
        }
    };
};
</script>
</head>

<body>
姓名:<input id="name" type="text" />
<input id="btn1" type="button" value="搜索" />
<table id="tab1" border="1" width="500">
    <thead>
        <td>ID</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>操作</td>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>Blue</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>24</td>
            <td></td>
        </tr>
        <tr>
            <td>6</td>
            <td>王四</td>
            <td>24</td>
            <td></td>
        </tr>
    </tbody>
</table>
</body>
</html>
View Code

 表格排序

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
window.onload=function ()
{
    var oTab=document.getElementById('tab1');
    var oBtn=document.getElementById('btn1');
    
    oBtn.onclick=function ()
    {
        var arr=[];//定义一个空数组
        
        for(var i=0;i<oTab.tBodies[0].rows.length;i++)
        {
            arr[i]=oTab.tBodies[0].rows[i];//把表格里的内容传到数组里
        }
        
        arr.sort(function (tr1, tr2){//传参两个数 比较
            var n1=parseInt(tr1.cells[0].innerHTML);
            var n2=parseInt(tr2.cells[0].innerHTML);
            
            return n1-n2;//从小到大排列 若从大到小return n2-n1
        });
        
        for(var i=0;i<arr.length;i++)
        {
            oTab.tBodies[0].appendChild(arr[i]);
        }
    };
};
</script>
</head>

<body>
<input id="btn1" type="button" value="排序" />
<table id="tab1" border="1" width="500">
    <thead>
        <td>ID</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>操作</td>
    </thead>
    <tbody>
        <tr>
            <td>2</td>
            <td>张三</td>
            <td>23</td>
            <td></td>
        </tr>
        <tr>
            <td>6</td>
            <td>王四</td>
            <td>24</td>
            <td></td>
        </tr>
        <tr>
            <td>1</td>
            <td>Blue</td>
            <td>27</td>
            <td></td>
        </tr>
        <tr>
            <td>5</td>
            <td>张伟</td>
            <td>24</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>
    </tbody>
</table>
</body>
</html>
View Code
原文地址:https://www.cnblogs.com/Xuman0927/p/6027604.html