首页
学习
活动
专区
圈层
工具
发布

如何使用 HTML、CSS 和 Vanilla JavaScript 以及本地存储创建待办事项应用程序

在本教程中,我们将介绍如何使用 HTML、CSS 和 JavaScript 创建功能齐全的待办事项应用程序。...每个任务将包含以下元素: 用于将任务标记为完成的单选按钮 用于显示任务的 span 元素 一个编辑按钮和一个删除按钮 使用 CSS 设计样式 我们将从主体样式开始,以确保所有元素水平居中: body {...liElement然后我们从 DOM 中删除。 最后,我们获取 li 元素的 data 属性值并将其存储在名为 的变量中taskId。...在这个函数中,我们想要执行与删除按钮相同的步骤:即: 获取所有编辑按钮 使用forEach()方法迭代并获取最接近的li元素 获取 data-id 属性 allTasks使用 id 在数组中查找任务...将删除线 CSS 类添加到当前 li 元素的范围 使用该findIndex()方法从数组中获取当前任务的索引allTasks,然后将按钮的状态更新为选中。

1.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入Playwright:掌握自定义选择器与定位器技巧

    在日常的Web自动化测试中,我们都遇到过这样的场景:页面上那些没有规范属性、动态生成的元素,让编写稳定的选择器变成了一场噩梦。...上周我就花了整整一个下午,只为了定位一个不断变换class名的下拉菜单——这种情况在如今的单页应用中太常见了。如果你也厌倦了脆弱的CSS选择器,那么自定义选择器与定位器将是你的解放工具。...处理动态内容和影子DOM现代Web组件经常使用影子DOM,这给自动化测试带来了额外的挑战。...,我总结出了一些经验:统一的选择器策略// selector-utils.jsexportconst Selectors = {byTestId: (id) =>`[data-test="${id}"]...获取匹配元素的详细信息const elements = await page.locator('your-selector').elementHandles();for (const [index, element

    18611

    树形图拖拽插件tree-drag | 开源项目推荐

    前言 好多天前,领导让我实现一个树形图拖拽插件,这个插件用来描述各部门领导与员工之间的关系,每个父节点显示其子结点数量,拖拽任意一个叶结点上的人到另一个结点,他们之间的关系发生改变,树形图重新渲染。...用户操作都完成后,点击保存根据树形图生成JSON,将JSON发送给后端,后端根据JSON修改数据库中的人员对应关系。 接下来就跟大家下分享下我实现的这个插件,欢迎各位感兴趣的开发者阅读本文。...难点分析 实现可拖拽树形图 可拖拽树形图的实现,也是本插件的核心功能,根据dom的特定规则构建树,实现拖拽功能,拖拽功能我使用的是JQueryUI提供的方法,获取当前拖拽结点和目标结点的原始dom,重新构建树...这一部分的实现代码位置: 「plugins/treeDrag/js/jquery.treeDrag.js」 需要生成的dom规则如下: data-id="1000">中国...文件 如何使用 在要使用插件的html文件里引入下述依赖 <!

    2.8K20

    04-老马jQuery教程-DOM节点操作及位置和大小

    1. jQuery创建DOM标签 1.1 DOM动态创建标签的方法 DOM时代我们通过document的createElement方法动态创建标签。创建标签后,动态的给他添加属性。...; // 动态设置内部html标签 domDiv.innerHTML = 'span>动态spanspan>'; // 动态追加到body标签中 document.body.appendChild...(domDiv); 1.2 jQuery动态创建标签的方式 jQuery的构造函数本身可以接收html标签的字符串来动态创建HTML标签。...props:用于附加到新创建元素上的属性、事件和方法 返回值:返回新创建标签的jQuery包装对象 // jq的 appendTo,类似DOM的appendTo方法 $("Hello获取位置和偏移量 3.5.1 position() 概述 获取匹配元素相对父元素的偏移。此方法只对可见元素有效。从边框开始计算。

    3K90

    04-老马jQuery教程-DOM节点操作及位置和大小

    1. jQuery创建DOM标签 1.1 DOM动态创建标签的方法 DOM时代我们通过document的createElement方法动态创建标签。创建标签后,动态的给他添加属性。...(domDiv); 1.2 jQuery动态创建标签的方式 jQuery的构造函数本身可以接收html标签的字符串来动态创建HTML标签。...语法结构: jQuery(html, [props]) 参数: html:用于动态创建DOM元素的HTML标记字符串,注意标签尽量闭合。...props:用于附加到新创建元素上的属性、事件和方法 返回值:返回新创建标签的jQuery包装对象 // jq的 appendTo,类似DOM的appendTo方法 $("Hello获取位置和偏移量 3.5.1 position() 概述 获取匹配元素相对父元素的偏移。此方法只对可见元素有效。从边框开始计算。

    7K00

    Vuex原来可以这样上手

    第一部分:我对vuex的理解      这个重要的C是谁呢,鄙人认为就是此文章要介绍的Vuex(如果你想初识vue,可以移步vue原来可以这样上手这篇博文)。...第二部分:揭开vuex面纱 本示例实现为一个输入框动态向下拉列表增加选择项的功能源码下载地址,先看效果图: ?...为了展示vuex的作用,此示例你可以看到如下内容: 两个局部组件:输入和下拉列表组件 一个全局组件:App,也是整个Vue实例的顶级组件 一个jquery.js和bootstrap.js,用于实例下拉组件...重点关注inputComp组件中button子元素的on中的click方法,内部用dispatch触发了store中对应Id的actions。...vuex中创建的store实例传递进去。

    1.1K50

    前端之jQuery

    如果一个对象是 jQuery对象,那么它就可以使用jQuery里的方法:例如$(“#i1”).html()。 $("#i1").html()的意思是:获取id值为 i1的元素的html代码。...index的那个元素,这里的索引都是从0开始计时 :even // 匹配所有索引值为偶数的元素,从 0 开始计数 :odd // 匹配所有索引值为奇数的元素,从 0 开始计数 :gt(index)//...':'English'}) jQuery.fn.init [p#p1] 这里需要说明attr属性无法动态获取属性,可以通过prop进行动态获取属性。...(B)// 把A放到B的前面 移除和清空元素 remove()// 从DOM中删除所有匹配的元素。...目的: 我们已经创建好的事件如果想被动态创建的标签使用就需要用到事件委托,比如已经创建好了按钮点击的事件如果我们要将这个事件绑定给动态创建的一个按钮就通过事件委托,将事件绑定给按钮的父标签,这样当子标签

    6.1K21

    LayUI之旅-入门

    最近要做一个项目,被要求前端要使用layui,甲方爸爸很牛逼的好吗,既然要求这样了,二话不说,撸起袖子就开干,由于从来没用过layui这个框架,对框架的不熟悉导致在使用的过程中是步步都是障碍啊,还是那句话...,不仅仅要PC端使用,还有移动端也是要使用的,所以需要实现左边栏的显示和隐藏),因为设计是右侧(页面内容区域)异步加载(这是最终确定的方案),所以页面上的所有事件的绑定都需要用事件委托来处理(刚开始我也没注意到这个问题...,是标签中data-id的属性值 //关于tabAdd的方法所传入的参数可看layui的开发文档中基础方法部分 element.tabAdd('frame...这个也怪自己没有经验,解决方法很简单,直接把事件委托到祖先元素上(这个元素必须是首页模板里面就存在的,也就是非异步加载的元素,否则绑定失败),我这里用的是JQ的 on() 方法,on() 方法自JQuery1.7...这里使用 on() 方法是因为她添加的事件处理程序适用于当前及未来的元素。 提示:移除事件,使用 off() 方法。 提示:添加只运行一次的事件然后移除,使用 one() 方法。

    3.4K20

    前端入门6-JavaScript客户端api&jQuery

    首先创建一个对象: var obj = new Object(); 向对象中添加属性: obj.name = "dasu"; obj.age = 25; 对象的属性值可以是任何的数据类型,也可以是个函数...所以,下面会分别介绍 W3C 规范的标准 API 和 jQuery 的使用: DOM API document document 是内置的全局变量,在 JavaScript 可以直接通过该关键字使用,使用时会获取到当前...如果考虑以后维护方便(把 CSS 从 js 中分离出来)的话,推荐使用类的方式来操作。...html 创建元素 //类似于js中: document.createElement("标签名") var node1 = $("span>我是一个span元素span>");//返回的是jQuery...jquery1 查看元素的纯文本内容 console.log($(".main").text());//下面是元素标签和打出的日志 $(".main").prepend("span>我是第dsfds

    6.8K40

    Web前端知识(四)

    4.1.3. jQuery基本使用 第一步:下载jQuery库 第二步:引入下载的jQuery库 第三步:编写jQuery代码 4.1.4.jQuery获取标签 4.1.5.jQuery中事件介绍...; offset().top; position()获取某个元素相对于父元素的偏移位置 position().left position().top 4.1.7.2.操作HTML l使用jQuery...>获取属性值以www开头的对象button>span="">br> span="">button>获取属性值以cn结尾的对象button>span="">br> span="">...button>获取属性值包涵it的对象button>span="">br> span="">button>获取属性值包涵www的对象并且title包含"是"的对象button>span...() 淡出 分别表示淡入、 淡出,当然还有一个自动切换的方法: .fadeToggle() 切换淡入淡出 上面三个透明度方法只能是从 0 到 100,或者从 100 到 0,如果我们想设置指定值就没

    8.4K30

    前端自动化测试框架cypress

    UI自动化测试(端到端测试) UI测试的主要目的是,从软件使用者的角度来检验软件的质量,而UI自动化测试则是以自动化的方式来代替人工执行测试。...支持使用web浏览器上的开发工具直接调试,有丰富错误和堆栈跟踪信息,支持debug调试,随时暂停。 自动等待ui更新,减少异步代码,在页面某些元素还没出来的时候,通常我们会添加等待的代码。...each() // 用来在元素或者数组中的特定索引处获取DOM元素。...类似于Jquery中nth:child() .eq() Cypress 常见操作 访问某个 link //访问百度 cy.visit('httpf://www.baidu.com) 获取当前页面...$(btn).length>0{ cy.get(btn).click() } 获取元素属性值 //获取元素 btn 的文本 cy.get("#btn").then(function () { const

    2.7K40

    js与jQuery的区别以及jQuery选择器和方法的使用

    目录 使用jQuery js与jQuery代码对比 jQuery选择器:用来选中元素 基本方法 ---- js与jQuery代码对比 jQuery选择器:用来选中元素 基本方法 使用jQuery jQuery...3.3.1 建议下载开发版本 2、HBuilder使用 创建项目 3、把jQuery库复制到项目中的js文件夹中 4、引入jQuery库文件: 注意:script标签中不要写内容,写jQuery代码就再写一对...script标签 js与jQuery代码对比 案例1:点击按钮获取文本框中的值(JS对比jQuery),如下图 JS版: jQuery版: 先引入jQuery库 jQuery选择器:用来选中元素         ...现在呢,我想只改变   第一个p  这几个字的颜色,大家来看一下该怎么写?...下拉要注意了,单选 和多选直接就是找到选中的选项就行,可是下拉select标签中还有标签,我们要获取的是select中option选项的值,所以这个地方要注意写法。

    16.7K10

    jQuery入门基础——选择器

    jQuery 3.3.1 建议下载开发版本 2、HBuilder使用 创建项目 3、把jQuery库复制到项目中的js文件夹中 4、引入jQuery库文件: 注意:script标签中不要写内容,写jQuery...代码就再写一对script标签 1、代码对比 案例1:点击按钮获取文本框中的值(JS对比jQuery),如下图 JS版: jQuery版: 先引入jQuery库 jQuery选择器:用来选中元素 1.1...通配符:如果选中所有的元素 可以直接用通配符 * 表示所有。 选择器还可以组合多个一起使用,可以分为并集和交集。...现在呢,我想只改变   第一个p  这几个字的颜色,大家来看一下该怎么写?...下拉要注意了,单选 和多选直接就是找到选中的选项就行,可是下拉select标签中还有标签,我们要获取的是select中option选项的值,所以这个地方要注意写法。

    10.5K20

    【实战】我是如何在输入框实现@ At功能的

    $refs.editor)“ 使用ref的方式而不是ID的方式呢? 使用ref的好处是具有良好的可重用性和范围。因为ref只留在这个组件中,所以当您操作这个ref时,它不会干扰其他组件。...如果您使用id,它就有重复的问题,这就意味着你不可能重用某个元素。 例:我再生成一个富文本组件就会初始化失败、因为id是唯一的。这就是为什么很多人推荐尽量少用ID的原因。...通过$event 可以获取键盘的keyCode 达到监听的目的 e.preventDefault 可以阻止我输入的@字符的默认事件 getSelection 可以获取光标的位置、给插入标签一个坐标。...我就就可以做到:随时@ 随时插入的功能拉~ 五、Android、IOS、Web显示多端一致 每个端使用富文本都是不一样的、那我们应该如何做到统一数据统一呢?...获取光标的坐标在文本中的位置 caret-pos 从 textarea、contentedtiable 或 iframe 正文中获取插入符号/光标的位置/偏移量 import { position, offset

    3.7K20

    加点JavaScript魔法

    例如,ID = 123的用户动态中具有id="post123"属性。然后使用jQuery,在JavaScript中使用表达式$('#post123')在DOM中定位此元素。...在本处,返回值将是具有该类的所有元素的集合 05 弹窗和 DOM 元素 通过使用Bootstrap文档中的弹出窗口示例并在浏览器的调试器中检查DOM,我确定Bootstrap将弹出窗口组件创建为DOM... 为了避免弹出窗口出现在元素中,我要使用的是另一个技巧。我要将元素封装在span>元素中,然后将悬停事件和弹出窗口与span>相关联。...当我在刚刚创建的span>元素上调用popover()初始化函数时,Bootstrap框架会为我动态地插入弹出组件 06 鼠标悬停事件 正如我上面提到的,Bootstrap中的popover组件使用的悬停行为不够灵活...为了提取用户名,我可以从span>开始浏览DOM,移至第一个子元素,即元素,然后从中提取文本,这就是在网址中要使用的用户名 。

    5.7K10
    领券