博客列表 >事件代理-留言版-字符串练习-预习数组方法

事件代理-留言版-字符串练习-预习数组方法

葡萄枝子
葡萄枝子原创
2021年01月08日 00:05:18669浏览

事件代理-留言版-字符串练习-预习数组方法

  1. 实例演示事件代理的实现机制;
  2. 完成留言板,添加留言删除功能
  3. 自选不少于10个字符串方法进行练习
  4. 预习常用的数组方法

1. 实例演示事件代理的实现机制

事件代理: 也叫”事件委托”,事件触发者通常是”事件绑定者”的子元素

  • body 中添加 html
  1. <ul id="list">
  2. <li class="item">item1</li>
  3. <li class="item">item2</li>
  4. <li class="item">item3</li>
  5. </ul>
  • 添加 js
  1. // 父元素添加点击事件监听
  2. document.querySelector('ul#list').addEventListener('click', ev => {
  3. // 事件绑定者
  4. console.log(ev.currentTarget);
  5. // 事件触发者,通常是"事件绑定者"的子元素
  6. console.log(ev.target.innerHTML);
  7. });
  • 在 item2 上点击,控制台返回图

事件代理

2. 完成留言板,添加留言删除功能

  • body 中添加 html
  1. <label><input type="text" id="msg" /></label>
  2. <ol class="list"></ol>
  • 续写js
  1. // 留言板追加数据
  2. document.querySelector('#msg').addEventListener('keydown', ev => {
  3. // 非空回车时
  4. if (ev.key == 'Enter' && ev.currentTarget.value.trim().length > 0) {
  5. let msg = `<li>${ev.currentTarget.value} <a href="javascript:;" onclick="delMsg(this);">[删除]</a></li>`;
  6. // 新添加的留言在前
  7. document.querySelector('ol.list').insertAdjacentHTML('afterbegin', msg);
  8. // 清空上一条留言
  9. ev.currentTarget.value = '';
  10. }
  11. });
  12. // 删除留言时
  13. function delMsg(el) {
  14. document.querySelector('ol.list').removeChild(el.parentElement);
  15. }

添加留言

  • 删除中间一条留言

删除留言

3. 自选不少于10个字符串方法进行练习

  1. let str = '';
  2. // 1. concat() 拼接
  3. str = str.concat('a', 'b', 'c', '|', 0, 1, 'd', 'e');
  4. // abc|01de
  5. console.log(str);
  6. // 2. slice(start, end) 取子串
  7. str = str.slice(1, 7);
  8. // bc|01d
  9. console.log(str);
  10. // 3. substr(start, length) 截取子串
  11. str = str.substr(1, 4);
  12. // c|01
  13. console.log(str);
  14. // 4. trim() 去掉首尾空格
  15. let str2 = ' empty ';
  16. str2 = str2.trim();
  17. // 返回 empty
  18. console.log(str2);
  19. // 5. split() 字符串分割成数组
  20. let arr = str.split('|');
  21. // ["c", "01"]
  22. console.log(arr);
  23. // 6. indexOf() 子串首次出现位置
  24. let pos = str.indexOf('|');
  25. console.log(pos);
  26. // 7. replace() 字符串替换
  27. str = str.replace(/\|/i, '-');
  28. // c-01
  29. console.log(str);
  30. // 8. repeat() 重复次数字符串
  31. str = str.repeat(2);
  32. // c-01c-01
  33. console.log(str);
  34. // 9. lastIndexOf() 子串最后一次出现位置
  35. let lpos = str.lastIndexOf('-');
  36. // 返回 5
  37. console.log(lpos);
  38. // 10. search() 搜索子串
  39. // 返回 3
  40. console.log(str.search(/1c\-/));
  41. // ...

字符串练习

4. 预习常用的数组方法

  • map() 数组中每个元素应用一个方法后返回
  • forEach() 数组遍历
  • filter() 条件过滤
  • reduce()
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议