DOM
(xml)Document Object Model
html的结构
打印出来的不是字符串而是Object
页面中的节点通过上图中的4种构造函数构造出对应的对象,这就是dom的主要功能。
##API举例
节点
cloneNode()深拷贝和浅拷贝
isEqualNode与isSameNode
Equal相等的,same相同的(===)
特殊记忆
- previousSibling和nextSibling可能会获取到text文本(包括空格回车)
- (考)innerText和textContent是有细微的差别的(历史原因浏览器打架)
- (考)nodeType死记硬背1表示元素,3表示文本
- clone接受参数值(true false)true深拷贝,flase浅拷贝
- isEqual和isSame,前者文本内容相等,后者完全相等
- normalize是常规化把不正常的东西变为正常的
Document接口
referrer 引荐人
在浏览器的Network中可以查看,如果没有referrer单独访问域名可能会被服务器给拒绝。
写write一定不要出现在延时性和异步的操作里面
##document.querySelector(all)
返回一个伪数组(即使只有一个元素)(__proto__指向NodeList),和arguments一样都是伪数组,同时DOM API获取的数组都是伪数组
innerText和innerHTML
区别就是安不安全的问题,就是你的代码会不会产生后果。
理论上来说所有的前端都不要使用innerHTML,他会把用户写的标签执行,如果用户写<script>内容</script>就会执行,而innerText不会。
题目
1. 不用全局属性。2. 可以使用局部变量(声明一个函数,然后立即.call()调用这个函数)4.会被认为语法错误,
真实的原因是,allDiv已经取在内存中了,这是再对DOM进行操作,需要重新取才可以的!