博主信息
博文 21
粉丝 0
评论 0
访问量 17167
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
实例演示二个获取元素的api 和dom常用的遍历方法
放手去爱
原创
1230人浏览过

获取元素的api

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>表单元素的获取</title>
  8. </head>
  9. <body>
  10. <form action="login.php" method="post" id="login">
  11. <fieldset class="login" style="display: inline-grid; gap: 10px">
  12. <legend>用户登录</legend>
  13. <div>
  14. <label for="email">邮箱:</label>
  15. <input type="email" name="email" id="email" value="admin@php.cn" autofocus />
  16. </div>
  17. <div>
  18. <label for="password">密码:</label>
  19. <input type="password" name="password" id="password" value="123456" />
  20. </div>
  21. <button>提交</button>
  22. </fieldset>
  23. </form>
  24. <script>
  25. // 1. 获取表单: forms.id
  26. console.log(document.forms.login)
  27. // 2. 获取表单控件: forms.id.name/id
  28. console.log(document.forms.login.email)
  29. // 3. 获取表单控件的值: forms.id.name.value
  30. console.log(document.forms.login.email.value)
  31. // 前后端分离
  32. /// 前端 <->(JSON格式的字符串) <-> 服务器端
  33. // 将表单中的用户邮箱和密码发送到服务器端
  34. // 第一步: 获取表邮箱和密码
  35. let login = document.forms.login
  36. let email = login.email.value
  37. let password = login.password.value
  38. // 第二步: 转为 JS 对象
  39. let user = { email, password }
  40. // 第三步: 把JS对象序列化成JSON字符串
  41. let json = JSON.stringify(user)
  42. console.log(json)
  43. /**
  44. * * 总结
  45. * * 1. 表单: form.id
  46. * * 2. 表单控件: input.name
  47. * * 3. 表单控件的值: input.name.value
  48. */
  49. </script>
  50. </body>
  51. </html>

dom常用的遍历方法

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>遍历DOM树</title>
  8. </head>
  9. <body>
  10. <ul class="list">
  11. <li>item1</li>
  12. <li>item2</li>
  13. <li>item3</li>
  14. <li>item4</li>
  15. <li>item5</li>
  16. <li>item6</li>
  17. </ul>
  18. <script>
  19. /**
  20. * * 节点类型(12个,常用3个)
  21. * * 1. document: 文档类型, 9
  22. * * 2. element: 元素类型, 1
  23. * * 3. text: 文本类型, 3
  24. */
  25. // 列表<ul class='list'>
  26. let list = document.querySelector('.list')
  27. // nodeType 节点类型
  28. console.log(list.nodeType)
  29. // 1. 所有子节点: childNodes
  30. let items = list.childNodes
  31. console.log(items)
  32. // 类数组
  33. // 1. Array.from
  34. console.log(Array.from(items))
  35. // 2. ...rest
  36. console.log([...items])
  37. // 转为数组之后,Array很多API都可以用
  38. // 要求只返回“元素类型的节点”
  39. let result = [...items].filter(item => item.nodeType === 1)
  40. console.log(result)
  41. // 封装
  42. const getChildren = items => [...items].filter(item => item.nodeType === 1)
  43. console.log(getChildren(items))
  44. // js已经给我们封装好一个属性 children
  45. // 2. children : 所有子元素节点
  46. console.log(list.children)
  47. // children : 类数组
  48. // 3. 第一个子元素
  49. // ele.textContent: 元素内的文本
  50. console.log(list.children[0].textContent)
  51. // 语法糖
  52. let first = list.firstElementChild
  53. console.log(first.textContent)
  54. // 4. 后一个
  55. let next = list.querySelector(':first-child + *')
  56. next.style.color = 'red'
  57. next = first.nextElementSibling
  58. // 5. 最后一个
  59. let last = list.lastElementChild
  60. last.style.color = 'red'
  61. // 6. 前一个
  62. let prev = last.previousElementSibling
  63. prev.style.color = 'violet'
  64. // 7. 父节点: 一定是元素或文档类型
  65. let parent = first.parentNode
  66. console.log(parent)
  67. parent.style.border = '1px solid'
  68. // 8. 遍历
  69. // 在 [],{},()前分号不能省
  70. // 为什么不能用forEach,因为返回的不是 NodeList
  71. ;[...list.children].forEach(item => (item.style.border = '1px solid red'))
  72. </script>
  73. </body>
  74. </html>
批改老师:PHPzPHPz

批改状态:合格

老师批语:完成的很好, 看得出用心了, 继续加油
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学