var pList = document.querySelectorAll('p'); var p = pList[0]; p.getAttribute('data-name'); p.setAttribute('data-name', 'juejin'); p.getAttribute('style'); p.setAttribute('style', 'font-size:30px;');
property 和 attribute 两种的区别:
property 的获取和操作,是直接改变 js 对象。
attribute 是直接改变 HTML 的属性(**即对 HTML 属性的get和set**)。而且,get 和 set Attribute 时,还会触发 DOM 的查询和浏览器的重绘与重排,频繁操作会影响页面性能。
DOM 树操作
新增节点
1 2 3 4 5 6 7 8 9 10 11 12 13
// 获取待新增节点 var div1 = document.getElementById('div1');
// 创建新增节点 var p1 = document.createElement('p'); p1.innerHTML = 'Hello, world';
// 将新增节点增加至待新增节点 div1.appendChild(p1);
// 移动节点 这里是移动,不是拷贝 var div2 = document.getElementById('div2'); div1.appendChild(div2);
获取父元素
1 2 3 4
// 获取待新增节点 var div1 = document.getElementById('div1');
var parent = div1.parentelement;
获取子元素
1 2 3 4
// 获取待新增节点 var div1 = document.getElementById('div1');
var child = div1.childNodes;
删除节点
1 2 3 4 5 6
// 获取待新增节点 var div1 = document.getElementById('div1');
var child = div1.childNodes; var firstChild = child[0]; div1.removeChild(firstChild);