2021-08-16前端todolist实现js文件

这篇博客介绍了一个使用jQuery编写的Todo List应用。该应用具备添加任务、删除任务和修改任务状态的功能。用户在输入框输入任务内容后按回车键可添加任务,任务会出现在列表顶部,并清空输入框。若输入为空则会弹窗提示。点击任务旁的删除按钮可移除任务,而点击checkbox可以切换任务的完成状态,选中时任务项会添加'completed'类。博客通过示例代码详细阐述了各个功能的实现方式。

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

/* 
	需求:
	功能1:在输入框中输入任务内容,按回车键时添加一个任务(20分)
		要求1:添加到任务列表的最顶部
		要求2:添加完成后,需要清空原来的内容。
		要求3:要有非空的判断,如果任务内容为空,alert提示 "任务名称不能为空"
	功能2:任务删除功能,点击任务中的删除按钮,能够删除当前任务(10分)
	功能3:任务状态修改功能,点击checkbox,要求能够修改任务的完成状态。(10分)
		提示:当checkbox选中时,需要给li添加completed类, 当checkbox不选中时,需要移除completed类
	提示1:当checkbox选中时,需要给li添加completed类, 当checkbox不选中时,需要移除completed类
	提示2:详细功能参照素材提供的gif图。

*/
$(function () {
	// 开始你的表演....
	// [{info: "嘻嘻", done: true}]
	//1.遍历原有数据
	let dataArr = JSON.parse(localStorage.getItem('todolist')) || []
	load()
	function load() {
		//清空数据
		$('.todo-list').empty()
		dataArr.forEach(function (obj, index) {
			//创建
			let theLi = $(`<li class=${obj.done?'completed':'' }>
			<input class="toggle" type="checkbox" ${obj.done ? 'checked' : ''}>
			<label>${obj.info}</label>
			<button class="destroy" idx=${index}></button>
		</li>`)
			//向前添加数据
			$('.main .todo-list').prepend(theLi)
			// if (obj.done) {
            //     $(theLi).addClass('completed')
            //     $(theLi).find('.toggle').prop('checked', true)
            // }
		})
	}
	//2.获取表单中input
	// 在输入框中输入任务内容,按回车键时添加一个任务
	$('.header .new-todo').on('keyup', function (e) {
		if (e.keyCode === 13 && $(this).val().trim().length > 0) {
			let val = $(this).val()
			let newObj = {
				info: val,
				done: false
			}
			dataArr.push(newObj)
			$(this).val('')
			localStorage.setItem('todolist', JSON.stringify(dataArr))
			load()
		}else if(e.keyCode === 13 && $(this).val().trim().length===0 ){
			alert('任务名称不能为空')
		}
	})
	//3.功能2:任务删除功能,点击任务中的删除按钮,能够删除当前任务(10分)
	$('.todo-list').on('click', '.destroy', function () {
		let index = $(this).attr('idx')
		dataArr.splice(index, 1)
		save()
		load()
	})
	//4.toggle 功能3:任务状态修改功能,点击checkbox,要求能够修改任务的完成状态。(10分)
	$('.todo-list').on('click', '.toggle', function () {
		let index = $(this).siblings('button').attr('idx')
		dataArr[index].done = !dataArr[index].done
		$(this).parent().toggleClass('completed')
		save()
		load()
	})
	function save() {
		localStorage.setItem('todolist', JSON.stringify(dataArr))
	}
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值