一.本地存储的区别
1.cookie和storage的区别?
-
出现时间
cookie: 有js的时候就有了
storage: 有H5以后才有的
-
存储大小
cookie: 4kb
storage: 20MB
-
前后端交互(前端向后端发送请求)
cookie: 交互时请求默认携带cookie
storage: 交互式请求不会携带,除非前端人员配置传递
-
前后端操作
cookie: 不管前后端语言都可以操作
storage: 只能有前端语言操作(js)
-
过期时间
cookie: 默认会话级,页面关闭.存储消失;可以通过手动配置
storage: 不能通过手动配置
2.localStorage与sessionStorage的区别?
-
过期时间
localStorage: 永久存储,除非手动清理
sessionStorage: 会话级别,关闭页面,存储就失效
二.DOM
1.认识DOM
- 对页面删除一个节点
- 对页面增加一个节点
- 对节点添加一个class类名
- 删除某个节点的类名
2.获取非常规DOM
-
获取非常规DOM(HTML head body)
-
语法 :
- html语法: document.documentElement
- head语法: document.head
- body语法: document.body
3.获取常规DOM
-
js在获取常规元素时与css一样,可以通过类名,标签名,ID名
//1.1通过类名获取标签 var oBox = document..getElementsByClassName('box') /* oBox是一个伪数组,想要获取到某一个,可以通过下标 伪数组: 长得和数组类似,有下标有length,但是没有数组常用的方法 不管页面具有这个类名的元素有多少个,获取到的永远是伪数组的形式 */ //1.2通过标签名获取标签 var oDiv = document.getElementsByTagName('div') // console.log(oDiv) // console.log(oDiv[0]) // oDiv也是一个伪数组,想要获取到某一个元素,可以通过下标 //1.3通过ID名获取标签 var oBox2 = document.getElementById('box2') // console.log(oBox2) //因为ID通常都是独一无二的 //所以这里获取到的就是一个具有box2 ID名的标签,而不是一个伪数组 //2.1按照选择器的形式获取标签满足条件的第一个 var myDiv = document.querySelector('.box') console.log(myDiv) //querySelector:获取到满足条件的第一个标签 //2.2按照选择器形式后去所有满足条件的标签 var myDivAll = document.querySelectorAll('.box') console.log(myDivAll) //querySelectorAll: 获取到满足条件所有标签3.innerHTML 与 innerText
-
获取属性
-
innerHTML获取标签内部的文本与HTML结构
-
innerText只会获取到页面结构的文本内容,HTML结构会被忽略掉
-
操作元素的属性
-
nnerHTML
- 赋值时会识别字符串中的html结构
- 实际的标签,会把它当成字符串渲染到页面
-
innerText
赋值时不会识别字符串中的html结构
实际标签,会把它当成字符串渲染到页面
4.元素属性的获取设置与移出
<body> <div class="box" a="asadgfs" b="SDGwr">我是div标签</div> <script> // 需求: 获取元素的某些属性 // 1. 获取元素 var oBox = document.getElementsByClassName('box')[0] console.log(oBox) // 2. 获取元素的某些属性 // 语法: 元素.getAttribute('要查询的属性名') console.log(oBox.getAttribute('class')) console.log(oBox.getAttribute('a')) console.log(oBox.getAttribute('b')) // 新需求: 修改某些元素的某些属性 // 3. 设置元素的某些属性 // 语法: 元素.setAttribute('要设置的属性名', '要设置的属性值') oBox.setAttribute('a', 'dfhh') oBox.setAttribute('b', 'dfgafh') oBox.setAttribute('df', 'sdfs145') console.log(oBox.getAttribute('a')) // 4. 移出元素的某个属性 // 语法: 元素.removeAttribute('要移除的属性名') oBox.removeAttribute('b') </script> </body>5.H5自定义属性
-
date-lh='1234'
H5自定义属性中 data- 是固定的
lh 是实际的属性名
'1234'是实际的值
var oDiv = document.querySelector('div')
console.log(oDiv)
// 获取 H5 自定义属性
// 1. 获取语法: 元素.dataset.属性名
console.log(oDiv.dataset.cs)
// 2. 设置语法
oDiv.dataset.cs = 'qwertyuiop' // 标签中实际拥有; 做修改操作
oDiv.dataset.age = 18 // 标签中实际没有; 做新增操作
// 3. 删除
delete oDiv.dataset.age