网站首页 > 基础教程 正文
- 看过我【408】文章的人都知道,那是用jQuery写的,我觉得有必要用原生的javascript语句再把这个例子写一遍,更多的文章请关注我的头条号。
一、开始吧,先做一个输入框和一个按钮,记得给它们id。
二、在下面加个盒子,给它个class类名。
三、开始写javascript了,先取得三个元素对象,这就是dom。(对于dom不了解的朋友可以关注看我写的文【303】)。
四、添加按钮点击事件,试一下效果。(对于点击事件不了解的朋友可以看一下我写的文【305】)
五、我们把alert消息框去掉,改成插入html标签吧。
六、加个div,让插入的内容独立成行。
七、把输入框的内容通过span标签放进去。
八、每次输入新内容,还要把光标移到文本框,删除掉原先的文本,太麻烦,我们改一改。
九、经过第八步,效果好了许多了,我们开始添加三个按钮,分别是完成、取消、删除。
十、先试一下各个按钮的事件,看效果出来没有。
十一、在做“完成”按钮事件前,我们先做一个样式,就是给文字划线的样式。
十二、开始写“完成”按钮的点击事件,把划线样式加给span标签。
十三、接着做“取消”按钮,把样式给删除掉。
十四、最后做出“删除”按钮的事件。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .textdone{ text-decoration: line-through; } </style> </head> <body> <input type="text" id="inp"><button id="btadd">添加</button> <div class="box"></div> <script> var ebtadd = document.querySelector("#btadd"); var ebox = document.querySelector(".box"); var einp = document.querySelector("#inp"); ebtadd.onclick = function () { ebox.insertAdjacentHTML("beforeend", `<div> <button>完成</button><button>取消</button><button>删除</button> <span>` + einp.value + `</span> </div> `); // insertAdjacentHTML的具体用法,以后我专业写个文介绍一下。 //这里的beforeend参数是指在box的结尾之前插入html einp.value = ""; // 输入框内容为空 einp.focus(); // 输入框为光标焦点 } // 以下是盒子box的点击事件 ebox.onclick = function () { var tg = event.target; // 这里取得被点击的元素对象 if (tg.innerHTML == "完成"){ var tgkids = tg.parentElement.children; // 返回父节点的所有字节点对象的集合 tgkids[3].classList.add("textdone"); // span标签是集合的第四个 } if (tg.innerHTML == "取消"){ var tgkids = tg.parentElement.children; tgkids[3].classList.remove("textdone"); } if (tg.innerHTML == "删除"){ var tgpar = tg.parentElement; // 这里是取得父节点对象 tgpar.remove(); // 直接把父节点删除了,就删除一行了。 } } </script> </body> </html>
猜你喜欢
- 2024-10-09 基于JavaScript实现的步骤引导进度条
- 2024-10-09 ?? ??????前端开发,实现B站首页动态banner
- 2024-10-09 有条件地启用和禁用DOM元素 在有条件使用
- 2024-10-09 详解Web导航菜单吸顶效果 详解web导航菜单吸顶效果怎么设置
- 2024-10-09 vue实践中的常见知识漏洞001 vue常见问题总结
- 2024-10-09 很多人不知道 Vue 中的组件就是一个函数
- 2024-10-09 Webpack基础应用篇 -「9」管理资源(下)
- 2024-10-09 移动开发第三天 移动开发什么意思
- 2024-10-09 读 Vue3 文档的时候我只学会了 Vue3?
- 2024-10-09 JavaScript重构技巧—数组,类名和条件
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)