精通JavaScript开发课时13-14(DOM操作应用)笔记
来源:互联网 发布:高颜值零食知乎 编辑:程序博客网 时间:2024/05/21 18:42
一、表格应用
一、获取表格元素的简便写法:
- tBodies[] —> getElementByTagName(‘tbody’)[]
- tHead —> getElementByTagName(‘thead’)
- tFoot —> getElementByTagName(‘tFoot’)
- rows[] —> getElementByTagName(‘tr’)[]
- cells[] —> getElementByTagName(‘td’)[]
二、隔行变色,鼠标移入高亮,移出还原
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'; } }};
三、添加、删除一行
添加一行:
window.onload=function (){ var oTab=document.getElementById('tab1'); var oBtn=document.getElementById('btn1'); var oName=document.getElementById('name'); var oAge=document.getElementById('age'); oBtn.onclick=function () { var oTr=document.createElement('tr');//创建一行tr var oTd=document.createElement('td'); oTd.innerHTML=oTab.tBodies[0].rows.length+1;//添加的ID为之前的行数加1 oTr.appendChild(oTd); var oTd=document.createElement('td'); oTd.innerHTML=oName.value; oTr.appendChild(oTd); var oTd=document.createElement('td'); oTd.innerHTML=oAge.value oTr.appendChild(oTd); oTab.tBodies[0].appendChild(oTr);//添加这个tr到tbody中 };};
可删除添加的行,被删除的ID不会再次使用
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;//每次添加后id加1 oBtn.onclick=function () { var oTr=document.createElement('tr'); var oTd=document.createElement('td'); oTd.innerHTML=id++; //用id处理ID的问题 oTr.appendChild(oTd); var oTd=document.createElement('td'); oTd.innerHTML=oName.value; oTr.appendChild(oTd); var oTd=document.createElement('td'); oTd.innerHTML=oAge.value; oTr.appendChild(oTd); var oTd=document.createElement('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); };};
四、表格搜索
版本2:忽略大小写
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; var sTxt=oTxt.value; if(sTab.toLowerCase()==sTxt.toLowerCase())//用toLowerCase()忽略大小写 { oTab.tBodies[0].rows[i].style.background='yellow';//选中高亮 } else { oTab.tBodies[0].rows[i].style.background='';//未中 } } };};
版本3:模糊搜索(搜索内容不全)
使用sTab.search(sTxt),返回值为sTxt在sTab中的位置,返回-1表示sTxt不在sTab中。
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(); if(sTab.search(sTxt)!=-1) { oTab.tBodies[0].rows[i].style.background='yellow'; } else { oTab.tBodies[0].rows[i].style.background=''; }}
版本4:多关键词搜索
用split()将搜索的关键词分开,分别进行搜索
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.background=''; for(var j=0;j<arr.length;j++)//分别搜索 { if(sTab.search(arr[j])!=-1) { oTab.tBodies[0].rows[i].style.background='yellow'; } }}
五、li排序
实现appendChild():
1.先把元素从原有父级上删掉;
2.再添加到新的父级;
所以不需要先removeChild再appendChild。
window.onload=function (){ var oUl1=document.getElementById('ul1'); var oBtn=document.getElementById('btn1'); oBtn.onclick=function () { var aLi=oUl1.getElementsByTagName('li'); //aLi.sort();//aLi不是数组,不能用sort var arr=[]; for(var i=0;i<aLi.length;i++) { arr[i]=aLi[i];//转成数组 } arr.sort(function (li1, li2){ var n1=parseInt(li1.innerHTML); var n2=parseInt(li2.innerHTML); return n1-n2; });//使用sort()排序 //alert(arr[0].innerHTML); for(var i=0;i<arr.length;i++) { alert('该把'+arr[i].innerHTML+'插入到最后'); oUl1.appendChild(arr[i]); }//重新放入ul里 };};
同理,表格的排序和上面一样
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;});for(var i=0;i<arr.length;i++){ oTab.tBodies[0].appendChild(arr[i]);}
二、表单事件(入门)
- onsubmit——提交时发生
- onreset——重置时发生
对于表单,后台通过name属性识别元素:
<form id="form1" action="http://www.zhinengshe.com/"> 用户名:<input type="text" name="user" /><br> 密码:<input type="password" name="pass" /> <input type="submit" /> <input type="reset" /></form></body>
js代码如下:
window.onload=function (){ var oForm=document.getElementById('form1'); oForm.onsubmit=function () { alert('aaa'); }; oForm.onreset=function () { alert('bbbbbb'); };};
1 0
- 精通JavaScript开发课时12(DOM操作应用)笔记
- 精通JavaScript开发课时13-14(DOM操作应用)笔记
- 精通JavaScript开发课时11(DOM基础)笔记
- 精通JavaScript开发课时20(JS事件基础)学习笔记
- 第14课时 DOM基础概念、操作
- 智能社JavaScript学习笔记——13/14 - DOM操作应用 - 高级
- JavaScript笔记(浏览器上--操作DOM)
- javaScript操作DOM学习笔记
- JavaScript DOM操作基础笔记
- javascript开发系列(DOM操作)
- 精通JavaScript DOM事件(转帖)
- JavaScript——DOM操作应用
- 【JavaScript笔记三】你也有控制权(DOM操作)
- javaScript笔记(十七) DOM操作表格及样式
- javascript高级编程学习笔记 DOM操作(一)
- javascript笔记--(第二十一章)DOM操作表格及样式
- JavaScript DOM(二)--DOM操作
- [DOM]javascript DOM操作
- runtime 运行时机制初步认识
- CAS实现SSO 学习(三)
- 【c语言】输入一组整数,求出最大子序列的和
- Xcode 6 正式版如何创建一个Empty Application
- android浏览器下a/input等元素获得焦点时高亮边框
- 精通JavaScript开发课时13-14(DOM操作应用)笔记
- 让乐视如此优惠电信欢go怎么做到的
- 变压器出现响声 浸漆
- 41 三个数从小到大排序
- android——Socket长连接
- birt报表开发入门
- mongodb文档型数据库特点介绍
- WordPress快速建站
- 关于 Java 对象序列化您不知道的 5 件事