原生JS的增删小案例上移下移功能

博客展示了原生JS的增删小案例,包含上移下移功能。给出了效果图,并分别展示了HTML、CSS和JS部分的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原生JS的增删小案例上移下移功能

效果图在这里插入图片描述
代码展示
HTML部分

	<!-- 模态框提示信息 -->
	<div class ="boxone">
	 不能为空,请输入信息
	</div>
	<!-- 简单布局 -->
	<div class="box">
		<span>姓名:</span>
		<input type="text" id="userName"/><br/>
		<span>手机号:</span>
		<input type="text" id="phone"/><br/>
		<span>评价:</span>
		<input type="number" id="grade"/>(0-5分)<br/>
		<input type="button" value="添加" id="add"/>
	
		<div class="main">
		渲染区域
		</div>
	</div>

css部分

    .box{
			background: skyblue;
			width: 800px;
			margin: 0 auto;
			padding: 20px;
		}
		.main img{
			width:10px;
			height: 10px;
		}
		ul li{
			list-style: none;
		}
		.boxone{
			display: none;
			width: 300px;
			height: 100px;
			position: absolute;
			top: 0;
			line-height: 100px;
			bottom: 0;
			left: 0;
			right: 0;
			text-align: center;
			margin: auto auto;
		  background: gray;
		}

JS部分

<script>
		//页面加载执行函数
		window.onload = function(){
			if(localStorage.arrList){
				arr = JSON.parse(localStorage.arrList);
				show(arr);
			}else{
				arr = [];
			}
		}
		//添加部分
		var arr = [];//接受存储数据
		var add = document.getElementById("add");
		var userName = document.getElementById("userName");
		var phone = document.getElementById("phone");
		var grade = document.getElementById("grade");
		add.onclick = function(){
			//判断非空提示
			if(userName.value == '' || phone.value == ''){
				var boxone = document.querySelector(".boxone");
				boxone.style.display = "block";
				//设置定时器清除提示信息
				setTimeout(function(){
					boxone.style.display = "none"
				},3000)
			}else{
				var obj = {
					id:+new Date(),
					userName:userName.value,
					phone:phone.value,
					grade:grade.value,
					time:+new Date(),
					timer:times()
				}
				arr.push(obj);
				//存储到本地localStorage
				localStorage.arrList = JSON.stringify(arr);
				//调用渲染函数
				show(arr);
				//清空输入框
				userName.value = '';
				phone.value = '';
				grade.value = '';
			}
		}
		//渲染页面数据
		function show(arr){
			var main = document.querySelector(".main");
			//main.innerHTML = '';
			var str = '';
			for(i = 0;i<arr.length;i++){
				str +=`
						<ul>
					<li class="namess">
						${i+1}.姓名:${arr[i].userName}
					</li>
					<li>
						手机号:${arr[i].phone}
					</li>
					
					<li class = "imgs">
						评价:
						<img src ="img/${arr[i].grade>0?1:0}.png"/>
						<img src ="img/${arr[i].grade>1?1:0}.png"/>
						<img src ="img/${arr[i].grade>2?1:0}.png"/>
						<img src ="img/${arr[i].grade>3?1:0}.png"/>
						<img src ="img/${arr[i].grade>4?1:0}.png"/>
					</li>
					<li>
					 ${arr[i].timer}
					</li>
					<li>
						<button type="button"  onclick="move(${i},'up')" ${i==0?"disabled":""}>上移</button>
						<button type="button" onclick="del(${arr[i].id})">删除</button>
						<button type="button"  onclick="move(${i},'down')" ${i==arr.length-1?"disabled":""}>下移</button>
					</li>
				</ul>
				`
			}
			   main.innerHTML = str;
		}
     //删除函数方法
     function del(id){
     	var result = confirm("是否删除数据");
     	if(result){
     	for(i=0;i<arr.length;i++){
     		if(id == arr[i].id){
     			arr.splice(i,1);
     			localStorage.arrList = JSON.stringify(arr);
     		}
     	}
     	show(arr);
     	}else{
     		show(arr);
     	}
     }
     //上下移动函数
    function move(i,type){
			if(type == 'up'){
				for(j=0;j<arr.length;j++){
					if(i==j){
						arr.splice(j-1,0,arr[j]);
						arr.splice(j+1,1);
					}
				}
				show(arr);
			}if(type=='down'){
				for(j=0;j<arr.length;j++){
					if(i==j){
						arr.splice(j+2,0,arr[j]);
						arr.splice(j,1);
					}
				}
				show(arr);
			}
			localStorage.arr = JSON.stringify(arr);
		}
		//封装时间函数获取规定格式
     function times(){
					var time = new Date();
		        	var year = time.getFullYear();
		        	var month = time.getMonth()+1;
		        	var day = time.getDate();
		        	var hours = time.getHours();
		        	var min = time.getMinutes();
		        	var second = time.getSeconds();
		        	var result = year + "-" + month + "-" + day + "-" +hours + ":"+min+":"+second;
		        	return result;
				}
	</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值