JS节点使用——通过js控制html中的数据信息添加、删除与编辑

HTML是我们为用户展现数据的平台,因此也少不了对数据的终端的操作,

因此,今天就做一个简单的学生信息添加、删除和编辑的功能。

具体模块以及布局如下:

 具体实现:

1、body中的实现

<body>
<div id="backbg"></div>  
<div id="updatediv">
<table id="newtable" width="600px" cellpadding="0" cellspacing="0" border="1px blue solid">
	<thead>
    	<tr>
        	<td>编号</td>
            <td>姓名</td>
            <td>性别</td>
            <td>爱好</td>
            <td>年级</td>
        </tr>
    </thead>
    <tbody id="tbodynew">
    </tbody>
</table>
<button id="btn3">保存并退出</button>
<button id="btn2">退出</button>
</div>
编号:<input name="num" type="text" onblur="checkNum()" style="visibility:hidden"/><br>
姓名:<input name="name" type="text" onblur="checkName()"/><br>
性别:<input type="radio" name="sex" value="男" checked="checked"/>男
	 <input type="radio" name="sex" value="女"/>女<br>
爱好:<input name="hobi" type="checkbox" checked="checked" value="唱歌"/>唱歌
	 <input name="hobi" type="checkbox" value="跳舞" />跳舞
     <input name="hobi" type="checkbox" value="画画" />画画<br>
年级:<select>
		<option selected="selected">高一</option>
	    <option>高二</option>
        <option>高三</option>
     </select>
<button id="btn1">提交</button>

<table id="tablelast" width="300px" cellpadding="0" cellspacing="0" border="1px blue solid">
	<thead>
    	<tr>
        	<td>编号</td>
            <td>姓名</td>
            <td>性别</td>
            <td>爱好</td>
            <td>年级</td>
            <td>操作</td>
        </tr>
    </thead>
    <tbody id="tbodyold">
    </tbody>
</table>

</body>

2、style样式设置

<style>
	#updatediv{
		border:#999 2px solid;
		width:800px;
		height:200px;
		position:absolute;
		top:30%;
		left:20%;
		background:#FFF;
		z-index:10; 
		}
	#tablelast{
		width:600px;
		}
	#btn2{
		position:relative;
		top:120px;
		left:80%;
		}
	#backbg {  
            background-color: gray;    
            position: absolute;
			left:0;  
            top:0;  
            z-index:3;  
            opacity:0.7;
			display:block;
        }
	
</style>

3、script脚本实现

<script src="jquery-1.8.2.min.js"></script>
<script>
	var arr=[];
	var flag=true;
	var $num=0;
	$(function(){
		$("div[id='updatediv']").hide();
		$("button[id='btn2']").click(function(){
			$("div[id='updatediv']").hide();
			closeBg();
			});
		
		$("button[id='btn3']").click(function(){
			var map=[];
			var i=0;
			$("tbody[id='tbodynew'] input").each(function(index,element){
				map.push($(this)[0].value);
				});
			$("tbody[id='tbodyold'] td").each(function(index,element){
				if(element.innerHTML==map[0]){//此处有多种方法进行判断,可以不通过选择器选择td,而是直接选择tr标签。或者将td的index进行取模后再判断。或者通过element.innerHTML等等更多方法
					//alert("index:  "+index+" map[0]: "+map[0]+"element: "+element);
					$(this).parent().children().each(function(ind,ele){
						if(ind<5){
						ele.innerHTML=map[i];
						i++;
						}
						});
					}
				});
			$("div[id='updatediv']").hide();
			closeBg();
			});
		$("button[id='btn1']").click(function(){
			$num=$num+1;
			arr.push($num);
			var $name=$("input[name='name']").val();
			var $sex="";
			$("input[name='sex']").each(function(index,element){
			   if($(this).attr('checked')=='checked'){
	           $sex=$(this).val();
			   }
			 });
			var $hobi="";
			$("input[name='hobi']").each(function(index,element){
			   if($(this).attr('checked')=='checked'){
	           $hobi=$hobi+" "+$(this).val();
			   }
			 });
			var $school="";
			$("option").each(function(){
				if($(this).attr('selected')=='selected'){
					$school=$(this).val();
					}
			});
			var str=
			"<tr><td>"+$num+"</td>"+
            "<td>"+$name+"</td>"+
            "<td>"+$sex+"</td>"+
            "<td>"+$hobi+"</td>"+
            "<td>"+$school+"</td>"+
            "<td><a href='#' onclick='update("+$num+")'>编辑</a>"+
			"&nbsp;"+
			"<a href='#' onclick='remove("+$num+")'>删除</a></td></tr>";
			$("tbody[id='tbodyold']").append(str);
		});	   	   
	})
	
	function update(num){
		var str='';
		var showtr;
		showBg();
		$("tbody:first").each(function(){
			$(this).empty();//remove的问题在哪
			});
		$("div[id='updatediv']").show();
		$("tbody[id='tbodyold'] td").each(function(index,element){
			if(num==element.innerHTML){
				$(this).parent().children().each(function(ind,ele){
					//if(ind==1){
					//str=str+"<td>"+ele.innerHTML+"</td>";
					//	}
					if(ind<5){
					str=str+"<td>"+"<input type='text' value='"+ele.innerHTML+"' />"+"</td>";
					}
					});
				}
			});
		showtr="<tr>"+str+"</tr>";
		$("tbody[id='tbodynew']").append(showtr);
		}
	function remove(num){
		$("tbody>tr td").each(function (index,element){
			 if(element.innerHTML==num){
				 $(this).parent().remove();
			 }
			});
		}
	function checkNum(){
		var num=$("input[name='num']").val();
		var reg=/^[1-9]{1,}$/;
		var flag=reg.test(num);
		if(!flag){
			$("input[name='num']").focus();
			$("input[name='num']").select();
			$("input[name='num']").css("border","1px red solid");
			}
		else{
			$("input[name='num']").css("border","1px solid");
			}
		}
		function checkName(){
		var name=$("input[name='name']").val();
		var reg=/^[a-z]{1,}[0-9]{0,}$/;
		var flag=reg.test(name);
		if(!flag){
			$("input[name='name']").focus();
			$("input[name='name']").select();
			$("input[name='name']").css("border","1px red solid");
			}
		else{
			$("input[name='name']").css("border","1px solid");
			}
		}
	
	 function showBg() {
            var bh = 600; 
			$("#backbg,#updatediv").show(); 
            var bw = $("body").width();  
            $("#backbg").css({  
                height: bh,  
                width: bw,  
            });  
           // $("div[id='updatediv']").css("z-index","4");  
			$("div[id='fullbg']").css("z-index","5");
        }  
        //关闭灰色  遮罩   
        function closeBg() {  
            $("#backbg,#updatediv").hide(); 
			//$("div[id='updatediv']").css("z-index","0");
			//$("div[id='backbg']").css("z-index","0");
        }  
</script>

最后,当中还有些不足,如果您采纳后,希望您做得更加完善!

猜你喜欢

转载自blog.csdn.net/Domesteven/article/details/82818831