WebApiⅡ:自定义属性、节点
自定义属性
获取属性值
-
element.属性 :获取内置属性值
-
element.getAttribute(‘属性’) :获取自定义属性值
1
2
3
4
5
6
7
8
9
10<div id="demo" index="1" class="nav"></div>
<script>
var div = document.querySelector('div');
// 1. 获取元素的属性值
// (1) element.属性
console.log(div.id); //demo
//(2) element.getAttribute('属性')
console.log(div.getAttribute('id')); //demo
console.log(div.getAttribute('index')); //1
</script>
设置属性值
- element.属性 = ‘属性值’
- element.setAttribute (‘属性’,‘属性值’) :设置自定义属性值
1 | // (1) element.属性= '值' |
移除属性
element.removeAttribute ('属性')
h5自定义属性
自定义属性获取是通过getAttribute(‘属性’) 获取。
但是有些自定义属性很容易引起歧义,不容易判断是元素的内置属性还是自定义属性。
1 | <div getTime="20" data-index="2" data-list-name="andy"></div> |
节点
网页中的所有内容都是节点(标签、属性、文本、注释等),在DOM 中,节点使用 node 来表示。
一般地,节点至少拥有nodeType(节点类型)、nodeName(节点名称)和nodeValue(节点值)这三个基本属性。
-
元素节点 nodeType 为1
-
属性节点 nodeType 为2
-
文本节点 nodeType 为3(文字、空格、换行)
实际开发中,节点操作主要操作元素节点
父级节点
node.parentNode
parentNode返回某节点的父节点(最近的),没有则返回null
1 | <div class="demo"> |
子节点
parentNode.chlidNodes
(标准)
返回值包含所有子节点,包括元素、文本节点等,so一般不用childNodes
parentNode.children
(非标准)
返回值只有元素字节,so提倡用children
1 | <ul> |
创建/添加节点
-
创建节点
document.creatElement('tagName')
-
添加节点
node.appendChild(child)
将节点添加到父节点的子节点列表末尾node.inserBefore(child,指定元素)
将节点添加到父节点的子节点列表开头
1 | <ul> |
删除节点
node.removeChild()
从node节点中删除子节点,返回的是删除节点
1 | <button>删除</button> |
克隆节点
node.cloneNode()
- 如果括号参数为空或false,则为浅拷贝,只克隆节点本身,不克隆里面的子节点
- 括号参数为true,则为深拷贝,会克隆字节本身以及里面所有子节点
1 | <ul> |
DOM重点总结
文档对象模型(Document Object Model),处理可拓展标记语言的编程接口,可以改变网页内容、结构、样式。
关于DOM操作,主要针对元素操作,主要有创建、增删改查、属性操作、实践操作。
- 创建:
document.write
innerHTML
creatElement
- 增加
appendChild
insertBefore
- 删除
removeChild
- 改
- 查
- 属性操作
- 事件操作