博客列表 >JS学习小结(事件代理的实现机制、留言板功能的实现、常用字符串函数汇总)

JS学习小结(事件代理的实现机制、留言板功能的实现、常用字符串函数汇总)

庖丁
庖丁原创
2021年01月21日 16:00:22568浏览

事件代理的实现机制

事件代理指的是利用父元素绑定事件,利用子元素的触发事件,获取子元素并实现相关操作的方法。好处是不用为每个子元素绑定事件,可以使代码简洁、易读。
事件代理的底层逻辑是事件冒泡,事件冒泡指的是当子元素和父元素均有点击事件时,会认为事件流是由小到大的顺序发生事件。
事件代理示例代码如下

  1. <ul>
  2. <li>栏目1</li>
  3. <li>栏目2</li>
  4. <li>栏目3</li>
  5. <li>栏目4</li>
  6. <li>栏目5</li>
  7. </ul>
  8. <script>
  9. const ul = document.querySelector("ul");
  10. ul.addEventListener("click",ev => {
  11. console.log(ev.currentTarget);
  12. console.log(ev.target);
  13. });
  14. </script>

简易留言板带删除功能

  1. <input type="text" name ="liuyan" />
  2. <ol></ol>
  3. <script>
  4. //获取元素
  5. const shuchu = document.querySelector("input");
  6. const ol = document.querySelector("ol");
  7. //添加keydown事件
  8. shuchu.addEventListener("keydown",ev =>{
  9. if(ev.key === "Enter"){
  10. if (ev.currentTarget.value.trim().length === 0){
  11. alert('请输入内容');
  12. }else{
  13. ol.insertAdjacentHTML("afterbegin",`<li>${ev.currentTarget.value}<span>删除</span></li>`);
  14. }
  15. ev.currentTarget.value = "";
  16. }
  17. })
  18. //添加click事件,删除对应的li内容
  19. ol.addEventListener("click",ev =>{
  20. let span = ev.target;
  21. if(span.innerHTML === "删除"){
  22. console.log(span.parentNode.parentNode.removeChild(span.parentNode));
  23. }
  24. })
  25. </script>

10个常用字符串方法

  1. <script>
  2. //1、indexOf() 返回字符串中指定文本_首次_出现的位置,如果未找到文本,返回-1,找到会返回对应的索引号,方法的第二个参数可设置开始的检索位置。
  3. let str = "跟着朱老师学php,真的很棒";
  4. console.log(str.indexOf("朱老师"));
  5. //2、slice(start, end)提取部分字符串函数,两个参数均为索引号,提取适用左闭右开原则。
  6. let str2 = "跟着朱老师学php,真的很棒";
  7. console.log(str2.slice(2,5));
  8. //3、substr(start,length)提取部分字符串,第一个参数为索引号,第二个为长度。
  9. let str3 = "跟着朱老师学php,真的很棒";
  10. console.log(str3.slice(2,3));
  11. //4、replace() 替换指定字符,默认只替换匹配到的第一个值,参数1为被替换字符串,参数2为替换内容
  12. let str4 = "跟着朱老师学php,朱老师教的很实用";
  13. console.log(str4.replace("朱老师","天蓬老师"));
  14. //5、concat() 字符串拼接
  15. let txt1 = "朱老师";
  16. let txt2 = "教的真好";
  17. let txt3 = ",大家都很喜欢他";
  18. console.log(txt1.concat(txt2,txt3,"给他点32个赞"));
  19. //6、trim() 删除字符串两端空字符
  20. let str6 = " hello world ";
  21. console.log(str6.trim());
  22. //7、charAt() 返回字符串中指定下标(位置)的字符
  23. let str7 = "hello world";
  24. console.log(str7.charAt(1));
  25. //8、split() 把字符串转换为数组,参数为分隔符
  26. let str8 = "一,二,三,四,五";
  27. console.log(str8.split(","));
  28. //9、toUpperCase() 转换为大写字母
  29. let str9 = "hello";
  30. console.log(str9.toUpperCase());
  31. //10、toLowerCase() 转换为小写字母
  32. let str10 = "HELLO";
  33. console.log(str10.toLowerCase());
  34. </script>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议