1. 程式人生 > >js實現表格的新增 刪除 搜尋和排序

js實現表格的新增 刪除 搜尋和排序

用js實現的對錶格的簡單的操作,新增一行 刪除一行 根據姓名搜尋 和按照id排序

其中的搜尋可以忽略大小寫,模糊搜尋(模糊搜尋即根據姓名中的一個字就可以搜尋到所要的內容,還可以多個內容搜尋 即多個名字中的一個字或全稱用空格分隔開,進行多個關鍵字的搜尋)

程式碼如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
	
		</style>
		
		<script type="text/javascript">
			window.onload=function()
			{
				var oTab=document.getElementById('tab1')
				var oBtn=document.getElementById('btn1');
				var oBtn2=document.getElementById('btn2');
				var oBtn3=document.getElementById('btn3')
				var oAge=document.getElementById('age');
				var oName=document.getElementById('name');
				var id=oTab.tBodies[0].rows.length+1;
				
				
				
				oBtn.onclick=function()
				//新增的點選事件
				{   
					var oTr=document.createElement('tr'); //定義一個新增事件的陣列oTr
					
					var oTd=document.createElement('td'); //建立Id的td
					oTd.innerHTML=id++;
					oTr.appendChild(oTd);    //把建立的td新增到陣列Tr中
					
					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);  //把建立的tr新增到tBodies中
				}
				
				
			   
			    oBtn2.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 sName=oName.value.toLowerCase();  //toLowerCase()忽略大小寫
						var arr=sName.split('');    //split()模糊搜尋
						
						 //先把所有顏色設定為空
//						oTab.tBodies[0].rows[i].style.display='none';  //篩選
	                    oTab.tBodies[0].rows[i].style.background='';  
						
						for(var j=0;j<arr.length;j++)
						{
							if(sTab.search(arr[j])!=-1)  //search()模糊搜尋
						   {
							oTab.tBodies[0].rows[i].style.background='yellow';
//							oTab.tBodies[0].rows[i].style.display='block';
						   }
						  
						  
						}
						
					}
				}
				
				oBtn3.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;
					});
					for(var i=0;i<arr.length;i++)
					{
						oTab.tBodies[0].appendChild(arr[i]);
					}
					
				}
			   
			   
			}
		</script>
	</head>
	<body>
		姓名:<input type="text" id="name" />
		年齡:<input type="text" id="age"/>
		<input type="button" id="btn1" value="新增" />
		<input type="button" name="btn2" id="btn2" value="搜尋" />
		<input type="button" name="btn3" id="btn3" value="排序" />
		<table border="1" id="tab1" width="500">
			<thead>
				<td>ID</td>
				<td>姓名</td>
				<td>年齡</td>
				<td>操作</td>
			</thead>
			<tbody>
				<tr>
					<td>1</td>
					<td>張三</td>
					<td>34</td>
					<td></td>
				</tr>
				<tr>
					<td>3</td>
					<td>李四</td>
					<td>11</td>
					<td> </td>
				</tr>
				<tr>
					<td>2</td>
					<td>王五</td>
					<td>34</td>
					<td></td>
				</tr>
				<tr>
					<td>4</td>
					<td>李麻子</td>
					<td>39</td>
					<td></td>
				</tr>
				<tr>
					<td>5</td>
					<td>HuHansan</td>
					<td>39</td>
					<td></td>
				</tr>
			</tbody>
		</table>
	</body>
</html>