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>
表格的添加删除
<!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>
表格搜索
搜索 版本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>
表格排序
<!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>