继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【金秋打卡】第11天 从函数到函数式编程之路

风吹尘
关注TA
已关注
手记 61
粉丝 9
获赞 1

课程名称:破解JavaScript高级玩法
课程章节:第7章 如果不用vue,react框架,如何操作DOM?
主讲老师:Cloud

课程内容:

今天学习的内容包括:
7-2 玩转Node节点:查询和遍历,5种方式无敌手——查询遍历等方法,了解了Nodelterator和TreeWalker特性。

课程收获:

Node 和 Element
  • Node是一个接口,我们就称其为节点吧
  • Element是通用性的基类,nodeType为1,是Node的一类实现。其子类我们统统成为元素。
  • Node还有很多其他实现,比如文本,注释等
HTMLCollection 和 NodeList
  • HTMLCollection : Element子类的集合
  • NodeList :所有Node子类的集合
  • 我们约定:HTMLCollection-元素集合,NodeList-节点列表
getElementById
  • 作用∶根据元素的id属性值进行节点查询,返回单一元素
  • 属于高效的查询
  • 语法: document.getElementByld(id)
注意事项
  • 只返回元素, nodeType为1的Element
  • id是大小写敏感的字符串
  • 如果有多个元素有相同id,只会返回第一个元素
  • 此方法仅仅存在于Document的实例上,常见于document上
getElementsByClassName
  • 作用:根据指定的类名查询元素。
  • 语法:document.getElementsByClassName(names)
  • 语法: rootElement.getElementsByClassName(names)
注意事项
  • 返回结果是实时元素集合,但不是数组
  • 可以同时匹配多个class, class类名通过空格分隔。匹配是And的关系
  • 元素均拥有此方法,不限于document
getElementsByName
  • 作用︰根据指定的name属性查询元素
  • 语法:document.getElementsByName(name)
注意事项
  • 返回的是实时的节点集合NodeList
  • 包括不能被解析的节点
  • 此方法仅仅存在于Document的实例上,常见于document上
getElementsByTagName
  • 作用︰根据指定的标签查询元素。
  • 语法:document.getElementsByTagName(tagName)
注意事项
  • 返回的是实时的元素集合
  • tagName可是*,代表所有元素
  • WebKit日版本内核的浏览器中可能返回一个是NodeList
querySelector
  • 作用:根据css选择器进行节点查询,返回匹配的第一个元素Element。
  • 语法:document.querySelector(selectors)
注意事项
  • 仅仅返回匹配的第一个元素Element
  • 如果传入的不是有效的CSS选择器字符串,会抛出异常。故不是绝对安全的方法
  • 元素均也有此方法,不限于document
  • 注意css选择器字符串的转义字符
querySelectorAll
  • 作用:根据css选择器进行节点查询,返回节点列表NodeList。
  • 语法:document.querySelectorAll(selectors)
注意事项
  • 其返回的静态的NodeList,随后对DOM元素的改动不会影响其集合的内容
  • querySelectorAll可能返回的不是你期望的值。定心丸: scope
  • 元素均也有此方法,不限于document
一些特殊查询属性
  • document.all所有的元素
  • document.images所有的图片元素
  • document.forms所有的form表单元素
  • document.scripts所有脚本元素
  • document.links所有具有href的area(热点)和a元素
  • document.fonts所有字体
  • document.styleSheets所有css的link和style元素
怎么查询伪元素
  • 答案:不能
  • 但你可以通过window.getComputedStyle来获取其样式
元素集合和nodeList遍历
  • for/while遍历
  • NodeList.prototype.forEach
  • 转为数组遍历:Array.from ,Array.porototype.slice,拓展运算符等
某个节点/元素所有子节点/元素遍历
  • children或者childNodes
  • Nodelterator 或者TreeWalker
Nodelterator VSTreeWalker
  • TreeWalker是Nodelterator的一个更高级的版本
  • 额外支持一些方法:parentNode , firstChild , lastChild ,nextSibling

总结

查询
  • getElementByld
  • querySelector
  • getElementsByClassName
  • getElementsByName
  • getElementsByTagName
  • querySelectorAll
元素集合和NodeList遍历
  • for/while遍历
  • NodeList.prototype.forEach
  • 转为数组遍历
某个节点/元素所有子节点/元素遍历
  • children/childNodes
  • Nodelterator或者TreeWalker

今天 学习了 玩转Node节点:查询和遍历,5种方式无敌手,通过今天的学习,对Node节点的查询和遍历有了新的认识。对自己说一句,加油😀~

坚持打卡,坚持学习!明天见💪~

​​http://img1.mukewang.com/636334a300019fe225191351.jpg

http://img.mukewang.com/63633bae0001dad425351360.jpg

http://img1.mukewang.com/63633eeb00019c7325291351.jpg

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP