jquery + js 基本实现todolist 增删改查,计时器,时间动态展示

不同todolist版本演示

3月20日

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1. input输入框回车确定添加内容
  1. 添加键盘监听事件
  2. 读取本地存储内容
  3. 将新的内容添加到本地存储并保存
  4. 渲染内容
$(function () {
   
    renderDate()
    // 1.为TODOlist输入框,添加按下事件,添加todo内容
    $("#title").on("keydown", function (event) {
   
        //回车键
        if (event.keyCode === 13) {
   
             let value = $(this).val()
            if ($.trim(value) === "") {
   
                alert("请输入内容!")
            } else {
   
                // 读取本地文件---》刷新后显示
                let localFile = getDate();
                //更新本地文件到本地
                localFile.push({
    title: $(this).val(), done: false })
                // 存储本地文件
                saveFile(localFile)
                renderDate()
                // $(this).prop("value") =' '
                // location.reload ()
                $(this).val('')//回车后清空input框中的内容
            }
        }
    });
2. 更改待办状态
  1. 为创建的input标签添加点击事件
  2. 如何确定指定的点击对象?
    • 通过本地存储为a标签添加的索引,找到相应的input标签
  3. 点击input标签,更改本地存储对应的属性并保存,通过属性作为渲染的依据
3. 删除待办
  1. 完成和未完成都需要删除按钮
  2. 删除是删除本地存储对应的内容
  3. 如何删除指定的内容?
  1. 通过渲染添加标签时,为a标签添加的id,可以找到对应的本地存储对象,并删除
  2. 为删除按钮添加点击事件
  3. 获取按钮a的索引标记
  4. 获取本地存储对象数组,通过索引删除指定对象
  // 删除
    /* 思路分析:
    1. 点击那a(删除按键)就会删除对应的todolist对象数组中的对象,然后渲染
    2. 关键:如何将a和数组对象进行关联,由于a是在遍历对象数组时添加的,同时数组对象索引是可以使用的
    所有可以通过,为a元素添id,并且与数组索引关联,获取a的id,就可以得到数组的索引,通过id删除数组索引,
    让后保存到本地,最后渲染
    */
    $("ol,ul").on('click', 'a', function () {
   
        // 得到本地数据
        let date = getDate()
        // 获取数据与a对于的id,删除数据
        let index = $(this).attr('id')
        date.splice(index, 1)
        // 保存数据到本地
        saveFile(date)
        // 渲染
        renderDate()
    })
4. 修改待办
  1. 获取要修改的对象的索引
  2. 根据索引找到数组对象,并修改内容
  3. 保存到本地
  4. 渲染
 // 修改数据
    $("ol,ul").on('click', '.update', function () {
   
        
        while (true) {
   
            let contentNew 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为你提供一个简单的示例代码,用于展示如何使用Vue组件化、Vue路由、Vuex和Axios来实现增删改查功能。 首先,我们需要安装Vue、Vue Router、Vuex和Axios,你可以使用npm或yarn来安装它们。 接下来,我们创建一个Vue组件,用于显示数据列表和执行增删改查操作。在这个组件中,我们将使用Vuex来管理数据状态和执行异步操作,使用Axios来进行HTTP请求。 ```html <template> <div> <h1>Todo List</h1> <form @submit.prevent="addTodo"> <input v-model="newTodo" placeholder="Add new todo" /> <button type="submit">Add</button> </form> <ul> <li v-for="(todo, index) in todos" :key="todo.id"> <input type="checkbox" :checked="todo.completed" @change="toggleTodo(todo)" /> <span>{{ todo.text }}</span> <button @click="removeTodo(index)">Remove</button> </li> </ul> </div> </template> <script> import { mapGetters, mapActions } from 'vuex'; export default { computed: { ...mapGetters(['todos']), }, methods: { ...mapActions(['addTodo', 'removeTodo', 'toggleTodo']), }, data() { return { newTodo: '', }; }, }; </script> ``` 接下来,我们使用Vue Router来创建路由和路由组件,用于在不同的URL路径下显示不同的组件。在这个例子中,我们将创建一个路由,用于显示TodoList组件。 ```javascript import Vue from 'vue'; import VueRouter from 'vue-router'; import TodoList from './components/TodoList.vue'; Vue.use(VueRouter); const routes = [ { path: '/', component: TodoList, }, ]; const router = new VueRouter({ mode: 'history', routes, }); export default router; ``` 最后,我们使用Vuex来管理TodoList组件的状态和操作。我们将创建一个store对象,包含state、mutations、actions和getters。 ```javascript import Vue from 'vue'; import Vuex from 'vuex'; import axios from 'axios'; Vue.use(Vuex); const store = new Vuex.Store({ state: { todos: [], }, mutations: { SET_TODOS(state, todos) { state.todos = todos; }, ADD_TODO(state, todo) { state.todos.push(todo); }, REMOVE_TODO(state, index) { state.todos.splice(index, 1); }, TOGGLE_TODO(state, todo) { todo.completed = !todo.completed; }, }, actions: { async fetchTodos({ commit }) { const response = await axios.get('/api/todos'); commit('SET_TODOS', response.data); }, async addTodo({ commit }, text) { const response = await axios.post('/api/todos', { text, completed: false }); commit('ADD_TODO', response.data); }, async removeTodo({ commit }, index) { await axios.delete(`/api/todos/${state.todos[index].id}`); commit('REMOVE_TODO', index); }, async toggleTodo({ commit }, todo) { await axios.patch(`/api/todos/${todo.id}`, { completed: !todo.completed }); commit('TOGGLE_TODO', todo); }, }, getters: { todos: state => state.todos, }, }); export default store; ``` 现在我们已经完成了使用Vue组件化、Vue路由、Vuex和Axios实现增删改查功能的示例代码。当然,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值