问题
1. HTMLCollection 与 NodeList 的区别?
getElementsByClassName()
和getElementsByTagName()
方法返回实时的HTMLCollection
querySelectorAll()
方法返回静态NodeList
相同点:
- 都是从文档中获取节点(元素)组成的类似数组的集合(列表);
- 都有
length
属性,所以可以通过索引号访问节点;
不同点:
HTMLCollection
是文档元素的集;NodeList
是文档节点(元素节点、属性节点和文本节点)的集合HTMLCollection
项目可以通过它们的名称、id
或索引号来访问;NodeList
项只能通过它们的索引号访问HTMLCollection
是实时集合;NodeList
是静态集合- 特例:
node.childNodes
属性返回实时的NodeList
2. Node 有哪些常用节点?
Element
Attribute
Text
3. Node 节点操作?
增删改查
4. dom 操作优化?
将频繁的操作改为一次性操作,通过创建文档碎片,最后一次性加入文档碎片。
5. attribute 与 property 区别?
attribute
是dom
元素在文档中作为html
标签拥有的属性;property
就是dom
元素在js
中作为对象拥有的属性;如node.nodeName
,node.nodeValue