一、获取元素
document.getlementById("id")通过id获取指定元素对象;
document.getElementsByTagName("标签名"):通过标签名获取元素对象的集合(伪数组)argument;
document.getElementsByName("name属性"):通过name属性获取元素对象的集合(伪数组);
document.getElementsByClassName("class属性"):通过类名获取对象的集合(伪数组) IE9以下不兼容;
docuemnt.querySelector("选择器"):通过选择器获取元素对象;
document.querySelectorAll("选择器"):通过选择器获取元素对象的集合("伪数组");
("伪数组")要在后面加[0]里面数字下标;
二、 创建元素节点
document.createElement() 创建元素(标签)节点;
document.createTextNode() 创建文本节点;
document.createDocumentFragment(): 创建文档碎片(提高性能);
减少DOM一次重排,提高性能
- 将碎片存放在文档的文档节点
<a>给了<li> - 将文档给到已有的
<ul><li>给了<ul>
三、修改节点对象
父节点replacechild(新节点,旧节点)
四、删除节点对象
父节点.removechild(子节点)删除子节点;
当前节点.remove() 删除当前节点;
五、克隆节点
当前节点.cloneNode([true]):默认为false只克隆当前节点,不包括内容,true克隆当前节点,包内容;
六、追加节点
父节点.appendchild(子节点):将子节点追加到父节点中孩子的末尾;
七、常见节点及属性
元素节点 nodeName 元素名称 nodeType类型 1 nodeValue值 null
color属性节点 属性名 2 属性值
哈哈-文本节点 #text 3 文本内容(纯文本)
设置或访问元素对象的属性(自定义属性)
1. 元素自己支持的属性
对象.属性 对象["属性"]
2.元素自己不支持的属性(自定义属性)
获取属性:对象.getAttribute("属性名");
设置属性:对象.setAttribute("属性名","属性值");
删除属性:对象.removeAttribute("属性名","属性值");
outerHtml/innerHtml/innerText
给指定标签里加文本 将结果放在指定的位置;
对象.innerHtml = "<b></b>"解析超文本;
对象.innerText = "<b></b>"解析文本;
对象.outerHtml = ""解析文本;
outHTML:获取当前元素及内容;
console.log(对象.innerHTML):设置或获取当前元素的内容(可以解析超文本)
获取所有的子节点,去除空白文本子节点
输出是具体几个数字 { childNodes:可以获取当前节点中所有的文本子节点和元素子节点; children: 可以获取当前节点所有的元素子节点; }
高级选取
parentNode:父节点;
firstchild:第一个子节点;
firstElementChild:第一个元素子节点;
lastchild:最后一个子节点;
lastElementchild:最后一个元素子节点;
previoussibling:上一个兄弟节点;
previousElementsibling:上一个兄弟节点;
nextsibling:下一个兄弟节点;
nextElementsibling: 下一个元素兄弟节点;
偏移量 offsetwidth /offsetHeight
offsetwidth:width+border+padding获取当前对象相对宽度;
非行内样式的兼容
标准:getcomputedstyle(节点对象,value)标准浏览器获取对象的非行内样式;
节点对象currentstyle.属性 IE9以下获取对象的非行内样式;
offsetleft/offsetTop
offsetleft:
- 如果没有定位,则当前对象相对于body(页面)左边的距离(left);
- 如果有定位,则当前对象,相对于父对象左边的距离offsetTop;
- insertBefore:在指定节点前插入 inserBefore(新节点,旧节点) 指定节点前;
接下来进入 Event事件=>