公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

JavaScript 21天入門: 練手項目之我的任務(wù)管理(七):任務(wù)標(biāo)簽及任務(wù)過濾

admin
2024年11月5日 9:22 本文熱度 1247

此系列的最后一天學(xué)習(xí)了,來把任務(wù)管理做得更完善點。

今日目標(biāo),是添加標(biāo)簽列,以及根據(jù)標(biāo)簽過濾任務(wù)。

添加標(biāo)簽

還記得昨天添加優(yōu)先級是如何完成的嗎?

這里可以先暫停閱讀,自己根據(jù)昨天的實現(xiàn),先自己思考一下。

這里要做的事情如下:

  • HTML:添加了一個 <input type="text"> 元素,用于輸入任務(wù)標(biāo)簽。

  • CSS:為任務(wù)標(biāo)簽添加樣式,使其在任務(wù)項中顯示。

  • JavaScript

    • 在 addTask 函數(shù)中獲取任務(wù)標(biāo)簽并傳遞給 addTaskToDOM 函數(shù)。

    • 在 addTaskToDOM 函數(shù)中,根據(jù)標(biāo)簽設(shè)置任務(wù)的顯示。

    • 在 saveTasks 和 loadTasks 函數(shù)中,保存和加載任務(wù)時包括標(biāo)簽信息。

添加標(biāo)簽元素

在任務(wù)輸入框旁邊添加一個輸入框,用于輸入任務(wù)標(biāo)簽。

<input type="text" id="tag-input" placeholder="輸入標(biāo)簽" /> 

為標(biāo)簽添加樣式

為任務(wù)標(biāo)簽添加樣式。

#tag-input {   width: 100px;   padding: 10px;   margin-right: 10px;   border: 1px solid #ccc;   border-radius: 4px; } 

標(biāo)簽存儲

在添加任務(wù)時,獲取標(biāo)簽并將其存儲和顯示。

 //1. 獲取標(biāo)簽元素 const tagInput = document.getElementById('tag-input');  function loadTasks() {   const tasks = JSON.parse(localStorage.getItem('tasks')) || [];   tasks.forEach((task) => {     addTaskToDOM(task.text, task.priority, task.tag, task.completed);   }); }  function saveTasks() {   const tasks = [];   document.querySelectorAll('.task').forEach((task) => {     tasks.push({       text: task.querySelector('.task-text').textContent,       priority: task.dataset.priority,       //添加標(biāo)簽       tag: task.dataset.tag,       completed: task.classList.contains('completed'),     });   });   localStorage.setItem('tasks', JSON.stringify(tasks)); }  //添加新的參數(shù)taskTag用于傳遞標(biāo)簽值 function addTaskToDOM(taskText, taskPriority, taskTag, completed = false) {   const newTask = document.createElement('li');   newTask.className = `task ${taskPriority}`;   newTask.dataset.priority = taskPriority;   //添加標(biāo)簽   newTask.dataset.tag = taskTag;   if (completed) {     newTask.classList.add('completed');   }    const taskTextSpan = document.createElement('span');   taskTextSpan.className = 'task-text';   taskTextSpan.textContent = taskText;    //添加標(biāo)簽   const taskTagSpan = document.createElement('span');   taskTagSpan.className = 'task-tag';   taskTagSpan.textContent = ` [${taskTag}]`;    const completeBtn = document.createElement('button');   completeBtn.textContent = '完成';   completeBtn.className = 'complete-btn';   completeBtn.addEventListener('click', () => {     newTask.classList.toggle('completed');     saveTasks();   });    const deleteBtn = document.createElement('button');   deleteBtn.textContent = '刪除';   deleteBtn.className = 'delete-btn';   deleteBtn.addEventListener('click', () => {     taskList.removeChild(newTask);     saveTasks();   });    newTask.appendChild(taskTextSpan);   //添加標(biāo)簽   newTask.appendChild(taskTagSpan);   newTask.appendChild(completeBtn);   newTask.appendChild(deleteBtn);   taskList.appendChild(newTask); }  

根據(jù)標(biāo)簽過濾

實現(xiàn)標(biāo)簽篩選功能,需要做如下事情:

  • HTML:添加了一個下拉選框,用于篩選標(biāo)簽。

  • CSS:為下拉選框應(yīng)用和優(yōu)先級一樣的樣式。

  • JavaScript

    • 在 loadTasks 函數(shù)中,在加載任務(wù)時把標(biāo)簽信息添加到過濾列表里。

    • 添加 filterTasksByTag 函數(shù),根據(jù)輸入的標(biāo)簽篩選任務(wù)。

添加標(biāo)簽過濾元素

在頁面上添加一個輸入框或選擇框,用于輸入或選擇要篩選的標(biāo)簽。

<div class="container">   <select id="filter-select">     <option value="all">所有標(biāo)簽</option>   </select> </div> 

實現(xiàn)標(biāo)簽過濾功能

//獲取標(biāo)簽過濾按鈕元素并添加change事件監(jiān)聽 const filterSelect = document.getElementById('filter-select'); filterSelect.addEventListener('change', filterTasks);  function loadTasks() {   const tasks = JSON.parse(localStorage.getItem('tasks')) || [];   tasks.forEach((task) => {     addTaskToDOM(task.text, task.priority, task.tag, task.completed);     //把標(biāo)簽值添加到過濾列表里     addTagToFilter(task.tag);   }); }  function addTagToFilter(tag) {   if (     !Array.from(filterSelect.options).some((option) => option.value === tag)   ) {     const option = document.createElement('option');     option.value = tag;     option.textContent = tag;     filterSelect.appendChild(option);   } }  function filterTasks() {   const filter = filterSelect.value;   document.querySelectorAll('.task').forEach((task) => {     if (filter === 'all' || task.dataset.tag === filter) {       task.style.display = '';     } else {       task.style.display = 'none';     }   }); } 

總結(jié)

代碼差異對比:

這樣整個 JavaScript 入門學(xué)習(xí)的基礎(chǔ)知識就告一段落。

在 JS 學(xué)習(xí)里,入門時強調(diào)了實踐。

在實踐過程中,如果有些東西不好理解,也沒有關(guān)系,先知道如何使用。

實踐的多了,就理解了,跟書讀百遍是一個意思。

那就先這樣吧。


該文章在 2024/11/5 9:22:08 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国精产品一品二品国精在线观看 | 91成人爽a毛片一区二区动漫 | 99国产午夜精品一区二区天美 | 国产无套护士丝袜在线观看 | 韩国精品一区二区三区久久 | 国产尤物精品不卡 | 国产美女口爆吞精一区二区 | 成人精品一区二区三区久久 | 91成人在线视频 | 精品无码成人网站久久久久久 | 2025亚洲精品无码在钱 | 国产精品高清全国免费观看 | 成av人电影在线观看 | 国产精品一区二区在线观看99 | 精品三级一区二区 | 国产精品丝袜亚洲熟女 | 国产成人一区二区三区影院 | www国产成人免 | 99精品人妻无码专区在线视 | 国产精品无码一区二区三区电影 | 国产无码免费视频 | 国产精品人人妻人人狠 | 国产91调教在线观看 | 高清成人爽a毛片免费 | 韩国免费a级作爱片无码 | 国产午夜精品影院 | 国产精品无码专区av在线播放 | 国产精品沙发午睡系列 | 国产精品无码无卡在线观看 | 2025最新手机在线 | 国产午夜在线看免费观看视频 | 国产精品日韩欧美久久综合 | 国产成人av无码在线 | 国产一区二区三区精品观看 | 国产精品福利短视在线播放频 | 国产女人喷潮视频在线观看 | 精品系列无码视频在线观看 | 国产精品欧美一区不卡亚洲 | 国模无码一区二区三区不卡 | 国产在线观看在线直播 | 国产女主播精品大秀系列在线 |