博客列表 >事件冒泡与字符串API

事件冒泡与字符串API

秋闲独醉
秋闲独醉原创
2022年07月28日 16:04:01284浏览

1. 事件冒泡,事件代理的原理是什么,实例演示

  1. <ul>
  2. <li data-index="1" class="item1">item1</li>
  3. <li data-index="2" class="item2">item2</li>
  4. <li data-index="3" class="item3">item3</li>
  5. <li data-index="4" class="item4">item4</li>
  6. </ul>
  7. <script>
  8. //事件传递机制与事件冒泡/事件代理/委托
  9. //event.currentTarget 事件主体
  10. //event.target 事件目标
  11. //获取Li元素
  12. const items = document.querySelectorAll("ul>li");
  13. // items.forEach(function (v) {
  14. // v.onclick = function () {
  15. // console.log(event.currentTarget.textContent);
  16. // };
  17. // });
  18. // //箭头函数简写
  19. // items.forEach((v) => {
  20. // v.onclick = () => {
  21. // console.log(event.currentTarget.textContent);
  22. // //阻止冒泡
  23. // event.stopPropagation();
  24. // };
  25. // });
  26. //事件冒泡:当前元素的事件会向上(向父级)进行传递,当父级有同名事件时会自动触发
  27. //父级,同名事件
  28. // 获取ul元素;添加onclick事件
  29. const ul = document.querySelector("ul");
  30. // ul.onclick = function () {
  31. // console.log(event.currentTarget);
  32. // };
  33. // // 获取body元素;添加onclick事件
  34. // const body = document.querySelector("body");
  35. // body.onclick = function () {
  36. // console.log(event.currentTarget);
  37. // };
  38. // // 获取html元素;添加onclick事件
  39. // document.documentElement.onclick = () => console.log(event.currentTarget);
  40. // // 获取document元素;添加onclick事件
  41. // document.onclick = () => console.log(event.currentTarget);
  42. // // 获取window元素;添加onclick事件
  43. // window.onclick = () => console.log(event.currentTarget);
  44. /**
  45. * 根据冒泡原理,当前元素上的同名事件,会向上传递到它的父级
  46. * 如果当前是一个列表,或者当前是一组集合,那么添加事件会非常麻烦
  47. * 不管当前有多少个元素,根据DOM树的特点,都会有一个父级
  48. * 所以,可以将这个事件,直接添加到它的父级上即可,可以极大简化代码
  49. * 但是要通过一些手段,来判断当前是哪个子元素触发了事件
  50. */
  51. ul.onclick = () => {
  52. //为了知道事件目标,可以为每个事件目标添加自定义data-index
  53. console.log(event.target.dataset.index);
  54. console.log(event.target.classList.value);
  55. };
  56. </script>

2. 自选5个课堂中未提及的字符串API,进行演示(MDN)

  1. <script>
  2. //自选5个课堂中未提及的字符串API,进行演示(MDN)
  3. let str = "I是1个程序员";
  4. //charAt(index) 返回指定索引位置处的字符,从0开始计数的整数
  5. console.log(str.charAt(3)); ///return 3;
  6. //charCodeAt(index) 返回一个整数,代表指定位置上的字符的Unicode编码
  7. let str1 = "ASDOINENFidnefl";
  8. console.log(str.charCodeAt(4)); //return 3143
  9. //concat(string,....),返回字符串值,该值包含所有字符串字符
  10. console.log(str.concat(str1)); //return I是1个程序员ASDOINENFidnefl
  11. //indexOf(subString[,startIndex]),返回子字符串第一个出现的位置
  12. let str2 = "程序员";
  13. console.log(str.indexOf(str2)); //return 4
  14. //lastIndexOf(subString[,startIndex]),返回子字最后出现换位置
  15. let str3 = "I是1个程序员I是1个程序员I是1个程序员";
  16. console.log(str3.lastIndexOf(str2)); //return 18
  17. //slice(start,[end]) 返回字符串的片段。
  18. console.log(str.slice(4)); //return程序员
  19. //split([separator[,limit]]) 将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
  20. let str4 = "nek kenk ,ek";
  21. console.log(str4.split(" ", 1)); //reurn nek
  22. //substr(start[,length])返回一个从指定位置开始的指定长度的子字符串。
  23. console.log(str3.substr(8, 4)); //return 是1个程
  24. //substring(start,end) 返回位于 String 对象中指定位置的子字符串。从 start 到最后(不包含 end )的子字符串的字符串。
  25. console.log(str3.substring(8, 12)); //return 是1个程
  26. console.log(str1.toLowerCase());
  27. console.log(str1.toUpperCase());
  28. </script>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议