Blogger Information
Blog 20
fans 0
comment 0
visits 15003
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
JS学习小结(事件代理的实现机制、留言板功能的实现、常用字符串函数汇总)
庖丁
Original
582 people have browsed it

事件代理的实现机制

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

  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>
Correcting teacher:天蓬老师天蓬老师

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