Dom操作
上下遍历
Node.parentNode,Node.childNodes,Node.firstChild,Node.lastNode.
左右遍历
Node.previousSibling,Node.nextSibling.
Node操作
添加 Node.appendChild()
删除 Node.removeChild()
复制 Node.clone(boolean) =>true 深度克隆 false 只克隆标签
创建 document.createElement()
选择 =>document.getElementById(),getElementsByClassName(),getElementsByTagName(),querySelector
getElement(s)By…与querySelector的区别
1.性能:getElement(s)By…的性能要比querySelector快很多。
2.querySelector选择出来的是静态的,getElement选出来的是动态的=>比如动态生成的元素可以用querySelector给每一个该对象生成方法。(新建文件夹)
class操作
elem.className
elem.classList=>add(class),remove(class),contains(class),item(index),toggle(class,boolean)。
document fragments
dom批量操作要用createDocumentFragment()
|
|
innerHTML
也可以
总结:innerHTML与createDocumentFragment 都比createElement和append占优势,少量数据时innerHTml最优,多数据或者改数据createDocumentFragment最优
但是innerHTML还有两个缺点:
1.如果你在原来的子元素上绑定了事件的话,重写后事件绑定仍然还在
2.js代码和html代码耦合程度高,不利于维护