Blogger Information
Blog 37
fans 0
comment 0
visits 14205
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
事件冒泡与字符串API
秋闲独醉
Original
292 people have browsed it

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>
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!