创建元素
创建元素语句并对元素属性进行赋值:
1 | let div = document.createElement("div") // 任意其他tag也可以 |
元素被创建出来之后,还没有被插入到页面中去。
插入方法
基本的插入方法有:
- parentElem.appendChild(node),在parentElem内的末尾添加一个node节点
- parentElem.insertBefore(node, nextSibling),在parentElem的nextsibling子节点前插入node节点
- parentElem.replaceChild(node, oldChild),用node替换oldChild节点
更加灵活的插入方式有:
- node.append(…nodes or strings)
- node.prepend(…nodes or strings)
- node.before(…nodes or strings)
- node.after(…nodes or strings)
- node.replaceWith(…nodes or strings)
还有一种功能很强大的插入方法:elem.insertAdjacentHTML(where, html)。where是决定html被插入到何处的参数。
- “beforebegin” – 在elem节点之前插入
- “afterbegin” – 在elem节点内部的起始插入
- “beforeend” – 在elem节点内部的末尾插入
- “afterend” – 在elem节点之后插入
类似的,还有elem.insertAdjacentText(where,text)和elem.insertAdjacentElement(where,element),分别是插入文本和元素。其实最常用的还是inserAdjacentHTML,因为当需要插入文本或者元素的时候,有append/prepend/before/after这种更简洁的方法。
拷贝方法
- elem.cloneNode(true),元素的深拷贝(包括子元素)
- elem.cloneNode(false),不包括子元素
移除方法
从DOM中移除一个节点:
- parentElem.removeChild(node)
- node.remove()
需要注意的是,如果我们需要把一个元素从原位置移动到另外一个位置,直接调用相应的插入方法即可,不需要先移除再插入,因为插入方法里面默认是先进行移除的。
另外,有一个很原始的方法:document.write(),这个方法只在浏览器首次加载html,构造DOM树的时候运行,并不能起到修改DOM的功能。