博主信息
博文 49
粉丝 0
评论 0
访问量 51010
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
演示事件代理的实现机制与留言板部分功能
lus菜
原创
755人浏览过

事件代理:

样式代码:

  1. <body>
  2. <ul>
  3. <li>item1</li>
  4. <li>item2</li>
  5. <li>item3</li>
  6. <li>item4</li>
  7. <li>item5</li>
  8. </ul>
  9. <script>
  10. //事件代理: 也叫"事件委托"
  11. const lis = document.querySelectorAll("li");
  12. document.querySelector("ul").addEventListener("click", ev => {
  13. //事件绑定者
  14. console.log(ev.currentTarget);
  15. //事件触发者,通常是"事件绑定者"的子元素
  16. console.log(ev.target.innerHTML);
  17. });
  18. </script>
  19. </body>

效果预览:

留言板:

样式代码:

  1. <body>
  2. <label>请留言:&nbsp;<input type="text" name="message" /></label>
  3. <ol id="list"></ol>
  4. <script>
  5. //获取元素
  6. const msg = document.querySelector("input");
  7. const list = document.querySelector("#list");
  8. msg.onblur = ev => {
  9. console.log(ev.currentTarget);
  10. };
  11. msg.onkeydown = ev => {
  12. // ev.key: 键盘事件中,key表示按下的键名
  13. if (ev.key === "Enter") {
  14. //非空判断
  15. if (ev.currentTarget.value.length === 0) {
  16. alert("内容不能为空");
  17. } else {
  18. //创建包括留言内容的html字符串
  19. let str = `<li>${ev.currentTarget.value}<button onclick="del(this)">删除</button></li>`;
  20. //最新留言应该始终做为第一条插入
  21. list.insertAdjacentHTML("afterbegin", str);
  22. //请空上一条留言
  23. ev.currentTarget.value = null;
  24. }
  25. }
  26. };
  27. //删除留言
  28. function del(ele) {
  29. return confirm("是否删除?") ? (ele.parentNode.outerHTML = null) : false;
  30. }
  31. </script>
  32. </body>

效果预览:

常用字符串方法:

  1. // 1. concat()拼装
  2. let str = "html".concat(" css ", "php !", 888);
  3. console.log(str);
  4. str = "html css php !";
  5. console.log(str);
  6. // 2. slice(start, end):取子串
  7. str = "hello php.cn";
  8. let res = str.slice(0, 5);
  9. console.log(res);
  10. //默认全部拿出来
  11. res = str.slice(0);
  12. console.log(res);
  13. res = str.slice(6);
  14. console.log(res);
  15. res = str.slice(-6);
  16. console.log(res);
  17. res = str.slice(-6, 9);
  18. console.log(res);
  19. // 正方向从0开始,反方向从-1开始
  20. res = str.slice(-6, -3);
  21. console.log(res);
  22. //3. substr(start, length)
  23. res = str.substr(0, 5);
  24. console.log(res);
  25. res = str.substr(-6, 3);
  26. console.log(res);
  27. // 4. trim():删除二端空格
  28. let psw = " root888 ";
  29. console.log(psw.length);
  30. psw = " root888 ";
  31. console.log(psw.trim().length);
  32. // 5. 将字符串打成数组
  33. res = str.split("");
  34. console.log(res);
  35. // 比如说从邮箱中解析出用户和和邮箱地址
  36. res = "admin@php.cn".split("@");
  37. console.log(res[0]);
  38. console.log(res[1]);
  39. </script>

效果预览:

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学